ruby-gpgme 1.0.3 → 1.0.4
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/gpgme_n.c +25 -0
- 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.
|
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-
|
12
|
+
date: 2009-02-09 00:00:00 +09:00
|
13
13
|
default_executable:
|
14
14
|
dependencies: []
|
15
15
|
|