darshan 1.1.0 → 1.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (3) hide show
  1. checksums.yaml +7 -0
  2. data/ext/darshan/darshan.c +25 -12
  3. metadata +9 -12
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ data.tar.gz: 899314eddab0162bb958dbc36b55b3535478dd66
4
+ metadata.gz: c302b1c3caae2ca78ad0bf18da3907f5c3e5fdf2
5
+ SHA512:
6
+ data.tar.gz: 3d81fa31010786c5b4a23a305ae3f151e8e7191a8714bf7d1b13dffff4a8803e432cb240a1da05e94677a7ed1b76e39e8c032a4c25c1082e7142ebf7dcc93cf7
7
+ metadata.gz: 15e80b6775d7bd7f5e1bb5f228bf5d9da59f27e1bb2e66a53c1070709c408424563bcc57518abcb4e498309648b6c433532e8c2a542caa62d1ec9d12622c6f3d
@@ -42,7 +42,9 @@ static VALUE rb_darshan_open(VALUE self, VALUE name, VALUE mode)
42
42
 
43
43
  // get the job struct
44
44
  struct darshan_job job;
45
- darshan_log_getjob(fd,&job);
45
+ int err = darshan_log_getjob(fd,&job);
46
+
47
+ if(err < 0) return Qnil;
46
48
 
47
49
  // set the version number
48
50
  rb_iv_set(res,"@version", rb_str_new2(job.version_string));
@@ -63,16 +65,24 @@ static VALUE rb_darshan_open(VALUE self, VALUE name, VALUE mode)
63
65
 
64
66
  // set the executable name
65
67
  char exe[CP_EXE_LEN+2];
66
- darshan_log_getexe(fd, exe);
68
+ err = darshan_log_getexe(fd, exe);
69
+
70
+ if(err < 0) return Qnil;
71
+
67
72
  rb_iv_set(res,"@exe", rb_str_new2(exe));
68
73
 
69
74
  // set the list of mount points
70
- int64_t* devs;
71
- char** mnt_pts;
72
- char** fs_types;
73
- int count;
74
- int err = darshan_log_getmounts(fd,
75
+ int64_t* devs = NULL;
76
+ char** mnt_pts = NULL;
77
+ char** fs_types = NULL;
78
+ int count = 0;
79
+ err = darshan_log_getmounts(fd,
75
80
  &devs,&mnt_pts,&fs_types,&count);
81
+
82
+ if(err < 0) {
83
+ return Qnil;
84
+ }
85
+
76
86
  VALUE dev = ID2SYM(rb_intern("dev"));
77
87
  VALUE mount = ID2SYM(rb_intern("mount"));
78
88
  VALUE type = ID2SYM(rb_intern("type"));
@@ -84,12 +94,15 @@ static VALUE rb_darshan_open(VALUE self, VALUE name, VALUE mode)
84
94
  rb_hash_aset(hash,mount,rb_str_new2(mnt_pts[i]));
85
95
  rb_hash_aset(hash,type,rb_str_new2(fs_types[i]));
86
96
  rb_ary_store(mp,i,hash);
87
- free(mnt_pts[i]);
88
- free(fs_types[i]);
97
+ if(mnt_pts != NULL && mnt_pts[i] != NULL)
98
+ free(mnt_pts[i]);
99
+ if(fs_types != NULL && fs_types[i] != NULL)
100
+ free(fs_types[i]);
89
101
  }
90
- free(devs);
91
- free(mnt_pts);
92
- free(fs_types);
102
+
103
+ if(devs != NULL) free(devs);
104
+ if(mnt_pts != NULL) free(mnt_pts);
105
+ if(fs_types != NULL) free(fs_types);
93
106
  rb_iv_set(res,"@mount_points", mp);
94
107
  return res;
95
108
  } else {
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: darshan
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.0
4
+ version: 1.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Matthieu Dorier
@@ -9,8 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2013-09-08 00:00:00 +02:00
13
- default_executable:
12
+ date: 2013-11-07 00:00:00 Z
14
13
  dependencies: []
15
14
 
16
15
  description: Ruby binding to ANL's Darshan library for HPC I/O tracing and analysis
@@ -25,10 +24,11 @@ files:
25
24
  - lib/darshan.rb
26
25
  - ext/darshan/darshan.c
27
26
  - ext/darshan/extconf.rb
28
- has_rdoc: true
29
27
  homepage: http://darshan-ruby.gforge.inria.fr/
30
28
  licenses:
31
29
  - LGPL
30
+ metadata: {}
31
+
32
32
  post_install_message:
33
33
  rdoc_options: []
34
34
 
@@ -37,22 +37,19 @@ require_paths:
37
37
  - ext
38
38
  required_ruby_version: !ruby/object:Gem::Requirement
39
39
  requirements:
40
- - - ">="
40
+ - &id001
41
+ - ">="
41
42
  - !ruby/object:Gem::Version
42
43
  version: "0"
43
- version:
44
44
  required_rubygems_version: !ruby/object:Gem::Requirement
45
45
  requirements:
46
- - - ">="
47
- - !ruby/object:Gem::Version
48
- version: "0"
49
- version:
46
+ - *id001
50
47
  requirements: []
51
48
 
52
49
  rubyforge_project: nowarning
53
- rubygems_version: 1.3.5
50
+ rubygems_version: 2.0.11
54
51
  signing_key:
55
- specification_version: 3
52
+ specification_version: 4
56
53
  summary: Ruby binding to Darshan
57
54
  test_files: []
58
55