darshan 1.1.0 → 1.1.2

Sign up to get free protection for your applications and to get access to all the features.
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