sequel_pg 1.5.0-x86-mswin32-60 → 1.5.1-x86-mswin32-60

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.
data/CHANGELOG CHANGED
@@ -1,3 +1,7 @@
1
+ === 1.5.1 (2012-08-02)
2
+
3
+ * Sprinkle some RB_GC_GUARD to work around segfaults in the PostgreSQL array parser (jeremyevans)
4
+
1
5
  === 1.5.0 (2012-07-02)
2
6
 
3
7
  * Add C-based PostgreSQL array parser, for major speedup in parsing arrays (Dan McClain, jeremyevans)
data/README.rdoc CHANGED
@@ -149,16 +149,11 @@ sequel_pg has been tested on the following:
149
149
 
150
150
  * gcc (3.3.5, 4.2.1, 4.4.3)
151
151
 
152
- === Ruby Versions
152
+ === Supported Ruby Versions
153
153
 
154
- * jruby cext branch (compiles but untested and unusable, as pg itself
155
- doesn't compile yet)
156
- * rbx head
157
- * ruby 1.8.6
158
154
  * ruby 1.8.7
159
- * ruby 1.9.1
160
155
  * ruby 1.9.2
161
- * ruby head
156
+ * ruby 1.9.3
162
157
 
163
158
  If your platform, compiler version, or ruby version is not listed
164
159
  above, please test and send me a report including:
@@ -133,6 +133,7 @@ static VALUE read_array(int *index, char *c_pg_array_string, int array_string_le
133
133
  int escapeNext = 0;
134
134
 
135
135
  VALUE array = rb_ary_new();
136
+ RB_GC_GUARD(array);
136
137
 
137
138
  /* Special case the empty array, so it doesn't need to be handled manually inside
138
139
  * the loop. */
@@ -156,7 +157,9 @@ static VALUE read_array(int *index, char *c_pg_array_string, int array_string_le
156
157
  }
157
158
  else if (RTEST(converter))
158
159
  {
159
- rb_ary_push(array, rb_funcall(converter, spg_id_call, 1, rb_str_new(word, word_index)));
160
+ VALUE rword = rb_str_new(word, word_index);
161
+ RB_GC_GUARD(rword);
162
+ rb_ary_push(array, rb_funcall(converter, spg_id_call, 1, rword));
160
163
  }
161
164
  else
162
165
  {
@@ -217,6 +220,7 @@ static VALUE parse_pg_array(VALUE self, VALUE pg_array_string, VALUE converter)
217
220
  char *c_pg_array_string = StringValueCStr(pg_array_string);
218
221
  int array_string_length = RSTRING_LEN(pg_array_string);
219
222
  VALUE buf = rb_str_buf_new(array_string_length);
223
+ RB_GC_GUARD(buf);
220
224
  char *word = RSTRING_PTR(buf);
221
225
  int index = 1;
222
226
 
data/lib/1.8/sequel_pg.so CHANGED
Binary file
data/lib/1.9/sequel_pg.so CHANGED
Binary file
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sequel_pg
3
3
  version: !ruby/object:Gem::Version
4
- hash: 3
4
+ hash: 1
5
5
  prerelease:
6
6
  segments:
7
7
  - 1
8
8
  - 5
9
- - 0
10
- version: 1.5.0
9
+ - 1
10
+ version: 1.5.1
11
11
  platform: x86-mswin32-60
12
12
  authors:
13
13
  - Jeremy Evans