Skip to content

Commit 7046fe6

Browse files
committed
Added rb_digest_make_metadata to wrap metadata
1 parent 6977084 commit 7046fe6

File tree

5 files changed

+12
-15
lines changed

5 files changed

+12
-15
lines changed

ext/digest/digest.h

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,3 +62,11 @@ rb_id_metadata(void)
6262
{
6363
return rb_intern_const("metadata");
6464
}
65+
66+
static inline VALUE
67+
rb_digest_make_metadata(const rb_digest_metadata_t *meta)
68+
{
69+
#undef RUBY_UNTYPED_DATA_WARNING
70+
#define RUBY_UNTYPED_DATA_WARNING 0
71+
return rb_obj_freeze(Data_Wrap_Struct(0, 0, 0, (void *)meta));
72+
}

ext/digest/md5/md5init.c

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -57,8 +57,5 @@ Init_md5(void)
5757

5858
cDigest_MD5 = rb_define_class_under(mDigest, "MD5", cDigest_Base);
5959

60-
#undef RUBY_UNTYPED_DATA_WARNING
61-
#define RUBY_UNTYPED_DATA_WARNING 0
62-
rb_iv_set(cDigest_MD5, "metadata",
63-
Data_Wrap_Struct(0, 0, 0, (void *)&md5));
60+
rb_iv_set(cDigest_MD5, "metadata", rb_digest_make_metadata(&md5));
6461
}

ext/digest/rmd160/rmd160init.c

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -53,8 +53,5 @@ Init_rmd160(void)
5353

5454
cDigest_RMD160 = rb_define_class_under(mDigest, "RMD160", cDigest_Base);
5555

56-
#undef RUBY_UNTYPED_DATA_WARNING
57-
#define RUBY_UNTYPED_DATA_WARNING 0
58-
rb_iv_set(cDigest_RMD160, "metadata",
59-
Data_Wrap_Struct(0, 0, 0, (void *)&rmd160));
56+
rb_iv_set(cDigest_RMD160, "metadata", rb_digest_make_metadata(&rmd160));
6057
}

ext/digest/sha1/sha1init.c

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -59,8 +59,5 @@ Init_sha1(void)
5959

6060
cDigest_SHA1 = rb_define_class_under(mDigest, "SHA1", cDigest_Base);
6161

62-
#undef RUBY_UNTYPED_DATA_WARNING
63-
#define RUBY_UNTYPED_DATA_WARNING 0
64-
rb_iv_set(cDigest_SHA1, "metadata",
65-
Data_Wrap_Struct(0, 0, 0, (void *)&sha1));
62+
rb_iv_set(cDigest_SHA1, "metadata", rb_digest_make_metadata(&sha1));
6663
}

ext/digest/sha2/sha2init.c

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -47,9 +47,7 @@ Init_sha2(void)
4747
cDigest_SHA##bitlen = rb_define_class_under(mDigest, "SHA" #bitlen, cDigest_Base); \
4848
\
4949
rb_ivar_set(cDigest_SHA##bitlen, id_metadata, \
50-
Data_Wrap_Struct(0, 0, 0, (void *)&sha##bitlen));
50+
rb_digest_make_metadata(&sha##bitlen));
5151

52-
#undef RUBY_UNTYPED_DATA_WARNING
53-
#define RUBY_UNTYPED_DATA_WARNING 0
5452
FOREACH_BITLEN(DEFINE_ALGO_CLASS)
5553
}

0 commit comments

Comments
 (0)