diff options
Diffstat (limited to 'ext/openssl/ossl_ns_spki.c')
-rw-r--r-- | ext/openssl/ossl_ns_spki.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/ext/openssl/ossl_ns_spki.c b/ext/openssl/ossl_ns_spki.c index b3e0ab805f..94e0667fcf 100644 --- a/ext/openssl/ossl_ns_spki.c +++ b/ext/openssl/ossl_ns_spki.c @@ -10,11 +10,13 @@ */ #include "ossl.h" -#define WrapSPKI(klass, obj, spki) do { \ +#define NewSPKI(klass) \ + TypedData_Wrap_Struct((klass), &ossl_netscape_spki_type, 0) +#define SetSPKI(obj, spki) do { \ if (!(spki)) { \ ossl_raise(rb_eRuntimeError, "SPKI wasn't initialized!"); \ } \ - (obj) = TypedData_Wrap_Struct((klass), &ossl_netscape_spki_type, (spki)); \ + RTYPEDDATA_DATA(obj) = (spki); \ } while (0) #define GetSPKI(obj, spki) do { \ TypedData_Get_Struct((obj), NETSCAPE_SPKI, &ossl_netscape_spki_type, (spki)); \ @@ -58,10 +60,11 @@ ossl_spki_alloc(VALUE klass) NETSCAPE_SPKI *spki; VALUE obj; + obj = NewSPKI(klass); if (!(spki = NETSCAPE_SPKI_new())) { ossl_raise(eSPKIError, NULL); } - WrapSPKI(klass, obj, spki); + SetSPKI(obj, spki); return obj; } |