Project

General

Profile

« Previous | Next » 

Revision 9fbf4887

Added by normal almost 9 years ago

openssl: use RB_GC_GUARD instead of volatile

From doc/extension.rdoc:

Using the RB_GC_GUARD macro is preferable to using the "volatile"
keyword in C. RB_GC_GUARD has the following advantages:

  1. the intent of the macro use is clear

  2. RB_GC_GUARD only affects its call site, "volatile" generates some
    extra code every time the variable is used, hurting optimization.

  3. "volatile" implementations may be buggy/inconsistent in some
    compilers and architectures. RB_GC_GUARD is customizable for broken
    systems/compilers without those without negatively affecting other
    systems.

  • ext/openssl/ossl_asn1.c (ossl_asn1_traverse, ossl_asn1_decode,
    ossl_asn1_decode_all): use RB_GC_GUARD instead of volatile
    [ruby-core:69371] [Bug #11185]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50646 b2dd03c8-39d4-4d8f-98ff-823fe69b080e