From: Martin Bosslet Date: 2011-01-25T07:38:52+09:00 Subject: [ruby-core:34841] [Ruby 1.9-Feature#4309] [ext/openssl] ASN1 performance enhancement --mimepart_4d3dff2764db9_13865a5137e4410 Content-Type: text/plain Content-Transfer-Encoding: Quoted-printable Content-Disposition: inline Issue #4309 has been updated by Martin Bosslet. File class_tag_map3.diff added >Sadly there is no maintainer for openssl currently, so it seems difficul= t >for your patch to be reviewed certainly. >I reviewed your patch simply, but note that I'm not familiar with openss= l. Thanks for your time! >CLASS_TAG_MAP is exported and not frozen. A user can modify it. >Is it intended? No, you're right, it should be frozen, thanks for the hint! >In principle, please explain a use case when you propose a new feature. >In this case, I will not be able to understand the use case, though :-) >If casual users want to use them, I'm not against it. Otherwise, it is >good to merge it with "something you'are currently working on" together,= >I think. You're right, when I read my post again, I noticed that my motivation = "came out wrong", I should have given a better one :) I thought = about this again and I think that only the "default_tag_of_class" = functionality is needed, but probably not by the casual user. Nevertheles= s, = if the functionality would be needed, it is still possible to do a lookup= in = CLASS_TAG_MAP directly. That's why I agree that it would not be necessary= to have a separate method for this feature, but I would still leave = CLASS_TAG_MAP exported to provide "default_tag_of_class" implicitly. >In addition, I think we should leave "EOC" for compatiblity reason. >It is good to have both "EOC" and "END_OF_CONTENT". That indeed would be the ideal solution, but unfortunately it's not = possible to add redundant values because the index directly relates to the default (universal) class tag, i.e. "EOC" has index 0, "BOOLEAN" 1 = etc. So I suppose it's OK to leave "EOC". I tried to integrate your comments and updated the patch file. >Anyway, thank you for your contribution. You're welcome :) Regards, Martin ---------------------------------------- http://redmine.ruby-lang.org/issues/show/4309 ---------------------------------------- http://redmine.ruby-lang.org --mimepart_4d3dff2764db9_13865a5137e4410 Content-Type: text/x-patch; name=class_tag_map3.diff Content-Transfer-Encoding: Base64 Content-Disposition: attachment; filename=class_tag_map3.diff ClByb3BlcnR5IGNoYW5nZXMgb246IHJ1YnkvZXh0L29wZW5zc2wKX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fXwpNb2RpZmllZDogc3ZuOmlnbm9yZQogICAtIEdO VW1ha2VmaWxlCk1ha2VmaWxlCmRlcApleHRjb25mLmgKbWttZi5sb2cKb3Bl bnNzbC5hCmNvbmZ0ZXN0LmRTWU0KCiAgICsgR05VbWFrZWZpbGUKTWFrZWZp bGUKZGVwCmV4dGNvbmYuaApta21mLmxvZwpvcGVuc3NsLmEKY29uZnRlc3Qu ZFNZTQpvcGVuc3NsLnNvCgoKSW5kZXg6IHJ1YnkvZXh0L29wZW5zc2wvb3Nz bF9hc24xLmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gcnVieS9leHQv b3BlbnNzbC9vc3NsX2FzbjEuYwkocmV2aXNpb24gMzA2NDApCisrKyBydWJ5 L2V4dC9vcGVuc3NsL29zc2xfYXNuMS5jCSh3b3JraW5nIGNvcHkpCkBAIC00 ODksNiArNDg5LDggQEAKIAogaW50IG9zc2xfYXNuMV9pbmZvX3NpemUgPSAo c2l6ZW9mKG9zc2xfYXNuMV9pbmZvKS9zaXplb2Yob3NzbF9hc24xX2luZm9b MF0pKTsKIAorc3RhdGljIFZBTFVFIGNsYXNzX3RhZ19tYXA7CisKIHN0YXRp YyBpbnQgb3NzbF9hc24xX2RlZmF1bHRfdGFnKFZBTFVFIG9iaik7CiAKIEFT TjFfVFlQRSoKQEAgLTU3MCwxNCArNTcyLDE1IEBACiBzdGF0aWMgaW50CiBv c3NsX2FzbjFfZGVmYXVsdF90YWcoVkFMVUUgb2JqKQogewotICAgIGludCBp OworICAgIFZBTFVFIHRtcF9jbGFzcyA9IENMQVNTX09GKG9iaik7CisgICAg d2hpbGUgKHRtcF9jbGFzcykgeworICAgICAgICBWQUxVRSB0YWcgPSByYl9o YXNoX2xvb2t1cChjbGFzc190YWdfbWFwLCB0bXBfY2xhc3MpOworICAgICAg ICBpZiAodGFnICE9IFFuaWwpIHsKKyAgICAgICAgICAgIHJldHVybiBOVU0y SU5UKHRhZyk7CisgICAgICAgIH0KKyAgICAgICAgdG1wX2NsYXNzID0gUkNM QVNTX1NVUEVSKHRtcF9jbGFzcyk7CisgICAgfQogCi0gICAgZm9yKGkgPSAw OyBpIDwgb3NzbF9hc24xX2luZm9fc2l6ZTsgaSsrKXsKLQlpZihvc3NsX2Fz bjFfaW5mb1tpXS5rbGFzcyAmJgotCSAgIHJiX29ial9pc19raW5kX29mKG9i aiwgKm9zc2xfYXNuMV9pbmZvW2ldLmtsYXNzKSl7Ci0JICAgIHJldHVybiBp OwotCX0KLSAgICB9CiAgICAgb3NzbF9yYWlzZShlQVNOMUVycm9yLCAidW5p dmVyc2FsIHRhZyBmb3IgJXMgbm90IGZvdW5kIiwKIAkgICAgICAgcmJfY2xh c3MybmFtZShDTEFTU19PRihvYmopKSk7CiAKQEAgLTEyNjAsNCArMTI2Mywz MiBAQAogICAgIHJiX2F0dHIoY0FTTjFCaXRTdHJpbmcsIHJiX2ludGVybigi dW51c2VkX2JpdHMiKSwgMSwgMSwgMCk7CiAKICAgICByYl9kZWZpbmVfbWV0 aG9kKGNBU04xRW5kT2ZDb250ZW50LCAiaW5pdGlhbGl6ZSIsIG9zc2xfYXNu MWVvY19pbml0aWFsaXplLCAwKTsKKworICAgIGNsYXNzX3RhZ19tYXAgPSBy Yl9oYXNoX25ldygpOworICAgIHJiX2hhc2hfYXNldChjbGFzc190YWdfbWFw LCBjQVNOMUVuZE9mQ29udGVudCwgSU5UMk5VTSgwKSk7CisgICAgcmJfaGFz aF9hc2V0KGNsYXNzX3RhZ19tYXAsIGNBU04xQm9vbGVhbiwgSU5UMk5VTSgx KSk7CisgICAgcmJfaGFzaF9hc2V0KGNsYXNzX3RhZ19tYXAsIGNBU04xSW50 ZWdlciwgSU5UMk5VTSgyKSk7CisgICAgcmJfaGFzaF9hc2V0KGNsYXNzX3Rh Z19tYXAsIGNBU04xQml0U3RyaW5nLCBJTlQyTlVNKDMpKTsKKyAgICByYl9o YXNoX2FzZXQoY2xhc3NfdGFnX21hcCwgY0FTTjFPY3RldFN0cmluZywgSU5U Mk5VTSg0KSk7CisgICAgcmJfaGFzaF9hc2V0KGNsYXNzX3RhZ19tYXAsIGNB U04xTnVsbCwgSU5UMk5VTSg1KSk7CisgICAgcmJfaGFzaF9hc2V0KGNsYXNz X3RhZ19tYXAsIGNBU04xT2JqZWN0SWQsIElOVDJOVU0oNikpOworICAgIHJi X2hhc2hfYXNldChjbGFzc190YWdfbWFwLCBjQVNOMUVudW1lcmF0ZWQsIElO VDJOVU0oMTApKTsKKyAgICByYl9oYXNoX2FzZXQoY2xhc3NfdGFnX21hcCwg Y0FTTjFVVEY4U3RyaW5nLCBJTlQyTlVNKDEyKSk7CisgICAgcmJfaGFzaF9h c2V0KGNsYXNzX3RhZ19tYXAsIGNBU04xU2VxdWVuY2UsIElOVDJOVU0oMTYp KTsKKyAgICByYl9oYXNoX2FzZXQoY2xhc3NfdGFnX21hcCwgY0FTTjFTZXQs IElOVDJOVU0oMTcpKTsKKyAgICByYl9oYXNoX2FzZXQoY2xhc3NfdGFnX21h cCwgY0FTTjFOdW1lcmljU3RyaW5nLCBJTlQyTlVNKDE4KSk7CisgICAgcmJf aGFzaF9hc2V0KGNsYXNzX3RhZ19tYXAsIGNBU04xUHJpbnRhYmxlU3RyaW5n LCBJTlQyTlVNKDE5KSk7CisgICAgcmJfaGFzaF9hc2V0KGNsYXNzX3RhZ19t YXAsIGNBU04xVDYxU3RyaW5nLCBJTlQyTlVNKDIwKSk7CisgICAgcmJfaGFz aF9hc2V0KGNsYXNzX3RhZ19tYXAsIGNBU04xVmlkZW90ZXhTdHJpbmcsIElO VDJOVU0oMjEpKTsKKyAgICByYl9oYXNoX2FzZXQoY2xhc3NfdGFnX21hcCwg Y0FTTjFJQTVTdHJpbmcsIElOVDJOVU0oMjIpKTsKKyAgICByYl9oYXNoX2Fz ZXQoY2xhc3NfdGFnX21hcCwgY0FTTjFVVENUaW1lLCBJTlQyTlVNKDIzKSk7 CisgICAgcmJfaGFzaF9hc2V0KGNsYXNzX3RhZ19tYXAsIGNBU04xR2VuZXJh bGl6ZWRUaW1lLCBJTlQyTlVNKDI0KSk7CisgICAgcmJfaGFzaF9hc2V0KGNs YXNzX3RhZ19tYXAsIGNBU04xR3JhcGhpY1N0cmluZywgSU5UMk5VTSgyNSkp OworICAgIHJiX2hhc2hfYXNldChjbGFzc190YWdfbWFwLCBjQVNOMUlTTzY0 U3RyaW5nLCBJTlQyTlVNKDI2KSk7CisgICAgcmJfaGFzaF9hc2V0KGNsYXNz X3RhZ19tYXAsIGNBU04xR2VuZXJhbFN0cmluZywgSU5UMk5VTSgyNykpOwor ICAgIHJiX2hhc2hfYXNldChjbGFzc190YWdfbWFwLCBjQVNOMVVuaXZlcnNh bFN0cmluZywgSU5UMk5VTSgyOCkpOworICAgIHJiX2hhc2hfYXNldChjbGFz c190YWdfbWFwLCBjQVNOMUJNUFN0cmluZywgSU5UMk5VTSgzMCkpOworCisg ICAgY2xhc3NfdGFnX21hcCA9IHJiX29ial9mcmVlemUoY2xhc3NfdGFnX21h cCk7CisgICAgcmJfZGVmaW5lX2NvbnN0KG1BU04xLCAiQ0xBU1NfVEFHX01B UCIsIGNsYXNzX3RhZ19tYXApOwogfQpJbmRleDogcnVieS90ZXN0L29wZW5z c2wvdGVzdF9hc24xLnJiCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHJ1 YnkvdGVzdC9vcGVuc3NsL3Rlc3RfYXNuMS5yYgkocmV2aXNpb24gMzA2NDAp CisrKyBydWJ5L3Rlc3Qvb3BlbnNzbC90ZXN0X2FzbjEucmIJKHdvcmtpbmcg Y29weSkKQEAgLTQzMCw0ICs0MzAsMzYgQEAKICAgICBlbmQKICAgZW5kCiAg IAorICBkZWYgdGVzdF9kZWZhdWx0X3RhZ19vZl9jbGFzcworICAgIGFzc2Vy dF9lcXVhbCgwLCBPcGVuU1NMOjpBU04xOjpDTEFTU19UQUdfTUFQW09wZW5T U0w6OkFTTjE6OkVuZE9mQ29udGVudF0pICAgIAorICAgIGFzc2VydF9lcXVh bCgxLCBPcGVuU1NMOjpBU04xOjpDTEFTU19UQUdfTUFQW09wZW5TU0w6OkFT TjE6OkJvb2xlYW5dKQorICAgIGFzc2VydF9lcXVhbCgyLCBPcGVuU1NMOjpB U04xOjpDTEFTU19UQUdfTUFQW09wZW5TU0w6OkFTTjE6OkludGVnZXJdKQor ICAgIGFzc2VydF9lcXVhbCgzLCBPcGVuU1NMOjpBU04xOjpDTEFTU19UQUdf TUFQW09wZW5TU0w6OkFTTjE6OkJpdFN0cmluZ10pCisgICAgYXNzZXJ0X2Vx dWFsKDQsIE9wZW5TU0w6OkFTTjE6OkNMQVNTX1RBR19NQVBbT3BlblNTTDo6 QVNOMTo6T2N0ZXRTdHJpbmddKSAgICAKKyAgICBhc3NlcnRfZXF1YWwoNSwg T3BlblNTTDo6QVNOMTo6Q0xBU1NfVEFHX01BUFtPcGVuU1NMOjpBU04xOjpO dWxsXSkgICAgCisgICAgYXNzZXJ0X2VxdWFsKDYsIE9wZW5TU0w6OkFTTjE6 OkNMQVNTX1RBR19NQVBbT3BlblNTTDo6QVNOMTo6T2JqZWN0SWRdKSAgICAK KyAgICBhc3NlcnRfZXF1YWwoMTAsIE9wZW5TU0w6OkFTTjE6OkNMQVNTX1RB R19NQVBbT3BlblNTTDo6QVNOMTo6RW51bWVyYXRlZF0pICAgIAorICAgIGFz c2VydF9lcXVhbCgxMiwgT3BlblNTTDo6QVNOMTo6Q0xBU1NfVEFHX01BUFtP cGVuU1NMOjpBU04xOjpVVEY4U3RyaW5nXSkgCisgICAgYXNzZXJ0X2VxdWFs KDE2LCBPcGVuU1NMOjpBU04xOjpDTEFTU19UQUdfTUFQW09wZW5TU0w6OkFT TjE6OlNlcXVlbmNlXSkgICAgCisgICAgYXNzZXJ0X2VxdWFsKDE3LCBPcGVu U1NMOjpBU04xOjpDTEFTU19UQUdfTUFQW09wZW5TU0w6OkFTTjE6OlNldF0p ICAgIAorICAgIGFzc2VydF9lcXVhbCgxOCwgT3BlblNTTDo6QVNOMTo6Q0xB U1NfVEFHX01BUFtPcGVuU1NMOjpBU04xOjpOdW1lcmljU3RyaW5nXSkKKyAg ICBhc3NlcnRfZXF1YWwoMTksIE9wZW5TU0w6OkFTTjE6OkNMQVNTX1RBR19N QVBbT3BlblNTTDo6QVNOMTo6UHJpbnRhYmxlU3RyaW5nXSkKKyAgICBhc3Nl cnRfZXF1YWwoMjAsIE9wZW5TU0w6OkFTTjE6OkNMQVNTX1RBR19NQVBbT3Bl blNTTDo6QVNOMTo6VDYxU3RyaW5nXSkKKyAgICBhc3NlcnRfZXF1YWwoMjEs IE9wZW5TU0w6OkFTTjE6OkNMQVNTX1RBR19NQVBbT3BlblNTTDo6QVNOMTo6 VmlkZW90ZXhTdHJpbmddKQorICAgIGFzc2VydF9lcXVhbCgyMiwgT3BlblNT TDo6QVNOMTo6Q0xBU1NfVEFHX01BUFtPcGVuU1NMOjpBU04xOjpJQTVTdHJp bmddKQorICAgIGFzc2VydF9lcXVhbCgyMywgT3BlblNTTDo6QVNOMTo6Q0xB U1NfVEFHX01BUFtPcGVuU1NMOjpBU04xOjpVVENUaW1lXSkKKyAgICBhc3Nl cnRfZXF1YWwoMjQsIE9wZW5TU0w6OkFTTjE6OkNMQVNTX1RBR19NQVBbT3Bl blNTTDo6QVNOMTo6R2VuZXJhbGl6ZWRUaW1lXSkKKyAgICBhc3NlcnRfZXF1 YWwoMjUsIE9wZW5TU0w6OkFTTjE6OkNMQVNTX1RBR19NQVBbT3BlblNTTDo6 QVNOMTo6R3JhcGhpY1N0cmluZ10pCisgICAgYXNzZXJ0X2VxdWFsKDI2LCBP cGVuU1NMOjpBU04xOjpDTEFTU19UQUdfTUFQW09wZW5TU0w6OkFTTjE6OklT TzY0U3RyaW5nXSkKKyAgICBhc3NlcnRfZXF1YWwoMjcsIE9wZW5TU0w6OkFT TjE6OkNMQVNTX1RBR19NQVBbT3BlblNTTDo6QVNOMTo6R2VuZXJhbFN0cmlu Z10pCisgICAgYXNzZXJ0X2VxdWFsKDI4LCBPcGVuU1NMOjpBU04xOjpDTEFT U19UQUdfTUFQW09wZW5TU0w6OkFTTjE6OlVuaXZlcnNhbFN0cmluZ10pCisg ICAgYXNzZXJ0X2VxdWFsKDMwLCBPcGVuU1NMOjpBU04xOjpDTEFTU19UQUdf TUFQW09wZW5TU0w6OkFTTjE6OkJNUFN0cmluZ10pCisgIGVuZAorICAKKyAg ZGVmIHRlc3RfY2xhc3NfdGFnX21hcF9pc19mcm96ZW4KKyAgICBhc3NlcnRf cmFpc2VzKFJ1bnRpbWVFcnJvcikgZG8KKyAgICAgIE9wZW5TU0w6OkFTTjE6 OkNMQVNTX1RBR19NQVBbc2VsZi5jbGFzc10gPSA5OQorICAgIGVuZAorICBl bmQKKyAgCiBlbmQgaWYgZGVmaW5lZD8oT3BlblNTTCkK --mimepart_4d3dff2764db9_13865a5137e4410--