aboutsummaryrefslogtreecommitdiffstats
path: root/ext/openssl
diff options
context:
space:
mode:
authorNobuyoshi Nakada <nobu@ruby-lang.org>2019-10-10 19:38:37 +0900
committerNobuyoshi Nakada <nobu@ruby-lang.org>2019-10-10 19:59:21 +0900
commit9c0cd5c569ba22bc68d1a77ad6580a275cd99639 (patch)
tree709aa8024b52b571daadf80acbb2cf08bc58c164 /ext/openssl
parent0131fab749fb76800de09e49a6abf910201c5b58 (diff)
downloadruby-9c0cd5c569ba22bc68d1a77ad6580a275cd99639.tar.gz
Prefer rb_gc_register_mark_object
* ext/openssl/ossl_asn1.c (Init_ossl_asn1): prefer `rb_gc_register_mark_object`, which is better for constant objects, over `rb_gc_register_address` for global/static variables which can be re-assigned at runtime. [Bug #16196]
Diffstat (limited to 'ext/openssl')
-rw-r--r--ext/openssl/ossl_asn1.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/ext/openssl/ossl_asn1.c b/ext/openssl/ossl_asn1.c
index e00c664c54..0085d4beab 100644
--- a/ext/openssl/ossl_asn1.c
+++ b/ext/openssl/ossl_asn1.c
@@ -1823,8 +1823,8 @@ do{\
rb_define_method(cASN1EndOfContent, "initialize", ossl_asn1eoc_initialize, 0);
rb_define_method(cASN1EndOfContent, "to_der", ossl_asn1eoc_to_der, 0);
- rb_global_variable(&class_tag_map);
class_tag_map = rb_hash_new();
+ rb_gc_register_mark_object(class_tag_map);
rb_hash_aset(class_tag_map, cASN1EndOfContent, INT2NUM(V_ASN1_EOC));
rb_hash_aset(class_tag_map, cASN1Boolean, INT2NUM(V_ASN1_BOOLEAN));
rb_hash_aset(class_tag_map, cASN1Integer, INT2NUM(V_ASN1_INTEGER));