ruby-gpgme 1.0.3 → 1.0.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (2) hide show
  1. data/gpgme_n.c +25 -0
  2. metadata +2 -2
data/gpgme_n.c CHANGED
@@ -220,6 +220,11 @@ rb_s_gpgme_data_new (VALUE dummy, VALUE rdh)
220
220
  gpgme_data_t dh;
221
221
  gpgme_error_t err = gpgme_data_new (&dh);
222
222
 
223
+ if (gpgme_err_code(err) == GPG_ERR_ENOMEM)
224
+ {
225
+ rb_gc ();
226
+ err = gpgme_data_new (&dh);
227
+ }
223
228
  if (gpgme_err_code(err) == GPG_ERR_NO_ERROR)
224
229
  rb_ary_store (rdh, 0, WRAP_GPGME_DATA(dh));
225
230
  return LONG2NUM(err);
@@ -238,6 +243,11 @@ rb_s_gpgme_data_new_from_mem (VALUE dummy, VALUE rdh, VALUE vbuffer,
238
243
  rb_raise (rb_eArgError, "argument out of range");
239
244
 
240
245
  err = gpgme_data_new_from_mem (&dh, StringValuePtr(vbuffer), size, 1);
246
+ if (gpgme_err_code(err) == GPG_ERR_ENOMEM)
247
+ {
248
+ rb_gc ();
249
+ err = gpgme_data_new_from_mem (&dh, StringValuePtr(vbuffer), size, 1);
250
+ }
241
251
  if (gpgme_err_code(err) == GPG_ERR_NO_ERROR)
242
252
  {
243
253
  vdh = WRAP_GPGME_DATA(dh);
@@ -251,6 +261,11 @@ rb_s_gpgme_data_new_from_fd (VALUE dummy, VALUE rdh, VALUE vfd)
251
261
  {
252
262
  gpgme_data_t dh;
253
263
  gpgme_error_t err = gpgme_data_new_from_fd (&dh, NUM2INT(vfd));
264
+ if (gpgme_err_code(err) == GPG_ERR_ENOMEM)
265
+ {
266
+ rb_gc ();
267
+ err = gpgme_data_new_from_fd (&dh, NUM2INT(vfd));
268
+ }
254
269
  if (gpgme_err_code(err) == GPG_ERR_NO_ERROR)
255
270
  rb_ary_store (rdh, 0, WRAP_GPGME_DATA(dh));
256
271
  return LONG2NUM(err);
@@ -325,6 +340,11 @@ rb_s_gpgme_data_new_from_cbs (VALUE dummy, VALUE rdh, VALUE vcbs,
325
340
  rb_ary_push (vcbs_handle, vhandle);
326
341
 
327
342
  err = gpgme_data_new_from_cbs (&dh, &cbs, (void*)vcbs_handle);
343
+ if (gpgme_err_code(err) == GPG_ERR_ENOMEM)
344
+ {
345
+ rb_gc ();
346
+ err = gpgme_data_new_from_cbs (&dh, &cbs, (void*)vcbs_handle);
347
+ }
328
348
  if (gpgme_err_code(err) == GPG_ERR_NO_ERROR)
329
349
  {
330
350
  VALUE vdh = WRAP_GPGME_DATA(dh);
@@ -409,6 +429,11 @@ rb_s_gpgme_new (VALUE dummy, VALUE rctx)
409
429
  gpgme_ctx_t ctx;
410
430
  gpgme_error_t err = gpgme_new (&ctx);
411
431
 
432
+ if (gpgme_err_code(err) == GPG_ERR_ENOMEM)
433
+ {
434
+ rb_gc ();
435
+ err = gpgme_new (&ctx);
436
+ }
412
437
  if (gpgme_err_code(err) == GPG_ERR_NO_ERROR)
413
438
  rb_ary_store (rctx, 0, WRAP_GPGME_CTX(ctx));
414
439
  return LONG2NUM(err);
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ruby-gpgme
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.3
4
+ version: 1.0.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Daiki Ueno
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2009-01-19 00:00:00 +09:00
12
+ date: 2009-02-09 00:00:00 +09:00
13
13
  default_executable:
14
14
  dependencies: []
15
15