@@ -470,43 +470,40 @@ typedef struct {
470
470
VALUE * klass ;
471
471
} ossl_asn1_info_t ;
472
472
473
- // TruffleRuby
474
473
static const ossl_asn1_info_t ossl_asn1_info [] = {
475
- { "EOC" , /* &cASN1EndOfContent*/ NULL , }, /* 0 */
476
- { "BOOLEAN" , /* &cASN1Boolean*/ NULL , }, /* 1 */
477
- { "INTEGER" , /* &cASN1Integer*/ NULL , }, /* 2 */
478
- { "BIT_STRING" , /* &cASN1BitString*/ NULL , }, /* 3 */
479
- { "OCTET_STRING" , /* &cASN1OctetString*/ NULL , }, /* 4 */
480
- { "NULL" , /* &cASN1Null*/ NULL , }, /* 5 */
481
- { "OBJECT" , /* &cASN1ObjectId*/ NULL , }, /* 6 */
482
- { "OBJECT_DESCRIPTOR" , NULL , }, /* 7 */
483
- { "EXTERNAL" , NULL , }, /* 8 */
484
- { "REAL" , NULL , }, /* 9 */
485
- { "ENUMERATED" , /* &cASN1Enumerated*/ NULL , }, /* 10 */
486
- { "EMBEDDED_PDV" , NULL , }, /* 11 */
487
- { "UTF8STRING" , /* &cASN1UTF8String*/ NULL , }, /* 12 */
488
- { "RELATIVE_OID" , NULL , }, /* 13 */
489
- { "[UNIVERSAL 14]" , NULL , }, /* 14 */
490
- { "[UNIVERSAL 15]" , NULL , }, /* 15 */
491
- { "SEQUENCE" , /* &cASN1Sequence*/ NULL , }, /* 16 */
492
- { "SET" , /* &cASN1Set*/ NULL , }, /* 17 */
493
- { "NUMERICSTRING" , /* &cASN1NumericString*/ NULL , }, /* 18 */
494
- { "PRINTABLESTRING" , /* &cASN1PrintableString*/ NULL , }, /* 19 */
495
- { "T61STRING" , /* &cASN1T61String*/ NULL , }, /* 20 */
496
- { "VIDEOTEXSTRING" , /* &cASN1VideotexString*/ NULL , }, /* 21 */
497
- { "IA5STRING" , /* &cASN1IA5String*/ NULL , }, /* 22 */
498
- { "UTCTIME" , /* &cASN1UTCTime*/ NULL , }, /* 23 */
499
- { "GENERALIZEDTIME" , /* &cASN1GeneralizedTime*/ NULL , }, /* 24 */
500
- { "GRAPHICSTRING" , /* &cASN1GraphicString*/ NULL , }, /* 25 */
501
- { "ISO64STRING" , /* &cASN1ISO64String*/ NULL , }, /* 26 */
502
- { "GENERALSTRING" , /* &cASN1GeneralString*/ NULL , }, /* 27 */
503
- { "UNIVERSALSTRING" , /* &cASN1UniversalString*/ NULL , }, /* 28 */
504
- { "CHARACTER_STRING" , NULL , }, /* 29 */
505
- { "BMPSTRING" , /* &cASN1BMPString*/ NULL , }, /* 30 */
474
+ { "EOC" , & cASN1EndOfContent , }, /* 0 */
475
+ { "BOOLEAN" , & cASN1Boolean , }, /* 1 */
476
+ { "INTEGER" , & cASN1Integer , }, /* 2 */
477
+ { "BIT_STRING" , & cASN1BitString , }, /* 3 */
478
+ { "OCTET_STRING" , & cASN1OctetString , }, /* 4 */
479
+ { "NULL" , & cASN1Null , }, /* 5 */
480
+ { "OBJECT" , & cASN1ObjectId , }, /* 6 */
481
+ { "OBJECT_DESCRIPTOR" , NULL , }, /* 7 */
482
+ { "EXTERNAL" , NULL , }, /* 8 */
483
+ { "REAL" , NULL , }, /* 9 */
484
+ { "ENUMERATED" , & cASN1Enumerated , }, /* 10 */
485
+ { "EMBEDDED_PDV" , NULL , }, /* 11 */
486
+ { "UTF8STRING" , & cASN1UTF8String , }, /* 12 */
487
+ { "RELATIVE_OID" , NULL , }, /* 13 */
488
+ { "[UNIVERSAL 14]" , NULL , }, /* 14 */
489
+ { "[UNIVERSAL 15]" , NULL , }, /* 15 */
490
+ { "SEQUENCE" , & cASN1Sequence , }, /* 16 */
491
+ { "SET" , & cASN1Set , }, /* 17 */
492
+ { "NUMERICSTRING" , & cASN1NumericString , }, /* 18 */
493
+ { "PRINTABLESTRING" , & cASN1PrintableString , }, /* 19 */
494
+ { "T61STRING" , & cASN1T61String , }, /* 20 */
495
+ { "VIDEOTEXSTRING" , & cASN1VideotexString , }, /* 21 */
496
+ { "IA5STRING" , & cASN1IA5String , }, /* 22 */
497
+ { "UTCTIME" , & cASN1UTCTime , }, /* 23 */
498
+ { "GENERALIZEDTIME" , & cASN1GeneralizedTime , }, /* 24 */
499
+ { "GRAPHICSTRING" , & cASN1GraphicString , }, /* 25 */
500
+ { "ISO64STRING" , & cASN1ISO64String , }, /* 26 */
501
+ { "GENERALSTRING" , & cASN1GeneralString , }, /* 27 */
502
+ { "UNIVERSALSTRING" , & cASN1UniversalString , }, /* 28 */
503
+ { "CHARACTER_STRING" , NULL , }, /* 29 */
504
+ { "BMPSTRING" , & cASN1BMPString , }, /* 30 */
506
505
};
507
506
508
- VALUE * * ossl_asn1_info_klass ;
509
-
510
507
enum {ossl_asn1_info_size = (sizeof (ossl_asn1_info )/sizeof (ossl_asn1_info [0 ]))};
511
508
512
509
static VALUE class_tag_map ;
@@ -597,8 +594,7 @@ ossl_asn1_default_tag(VALUE obj)
597
594
tmp_class = CLASS_OF (obj );
598
595
while (!NIL_P (tmp_class )) {
599
596
tag = rb_hash_lookup (class_tag_map , tmp_class );
600
- // TODO BJF Apr-15-2017 - `if (tag != Qnil) {` - Investigate why 0L == DynamicObject<NilClass>
601
- if (!NIL_P (tag ))
597
+ if (tag != Qnil )
602
598
return NUM2INT (tag );
603
599
tmp_class = rb_class_superclass (tmp_class );
604
600
}
@@ -806,8 +802,8 @@ int_ossl_asn1_decode0_prim(unsigned char **pp, long length, long hlen, int tag,
806
802
* num_read = hlen + length ;
807
803
808
804
if (tc == sym_UNIVERSAL &&
809
- tag < ossl_asn1_info_size && ossl_asn1_info_klass [ tag ]) { // TruffleRuby instead of ossl_asn1_info[tag].klass
810
- VALUE klass = * ossl_asn1_info_klass [ tag ]; // TruffleRuby instead of * ossl_asn1_info[tag].klass
805
+ tag < ossl_asn1_info_size && ossl_asn1_info [tag ].klass ) {
806
+ VALUE klass = * ossl_asn1_info [tag ].klass ;
811
807
VALUE args [4 ];
812
808
args [0 ] = value ;
813
809
args [1 ] = INT2NUM (tag );
@@ -870,7 +866,7 @@ int_ossl_asn1_decode0_cons(unsigned char **pp, long max_len, long length,
870
866
}
871
867
}
872
868
else {
873
- VALUE klass = * ossl_asn1_info_klass [ tag ]; // TruffleRuby instead of * ossl_asn1_info[tag].klass
869
+ VALUE klass = * ossl_asn1_info [tag ].klass ;
874
870
asn1data = rb_obj_alloc (klass );
875
871
}
876
872
args [0 ] = ary ;
@@ -1416,40 +1412,6 @@ OSSL_ASN1_IMPL_FACTORY_METHOD(EndOfContent)
1416
1412
void
1417
1413
Init_ossl_asn1 (void )
1418
1414
{
1419
- // TruffleRuby
1420
- ossl_asn1_info_klass = truffle_managed_malloc (sizeof (VALUE * ) * 31 );
1421
- ossl_asn1_info_klass [ 0 ] = & cASN1EndOfContent ;
1422
- ossl_asn1_info_klass [ 1 ] = & cASN1Boolean ;
1423
- ossl_asn1_info_klass [ 2 ] = & cASN1Integer ;
1424
- ossl_asn1_info_klass [ 3 ] = & cASN1BitString ;
1425
- ossl_asn1_info_klass [ 4 ] = & cASN1OctetString ;
1426
- ossl_asn1_info_klass [ 5 ] = & cASN1Null ;
1427
- ossl_asn1_info_klass [ 6 ] = & cASN1ObjectId ;
1428
- ossl_asn1_info_klass [ 7 ] = NULL ;
1429
- ossl_asn1_info_klass [ 8 ] = NULL ;
1430
- ossl_asn1_info_klass [ 9 ] = NULL ;
1431
- ossl_asn1_info_klass [10 ] = & cASN1Enumerated ;
1432
- ossl_asn1_info_klass [11 ] = NULL ;
1433
- ossl_asn1_info_klass [12 ] = & cASN1UTF8String ;
1434
- ossl_asn1_info_klass [13 ] = NULL ;
1435
- ossl_asn1_info_klass [14 ] = NULL ;
1436
- ossl_asn1_info_klass [15 ] = NULL ;
1437
- ossl_asn1_info_klass [16 ] = & cASN1Sequence ;
1438
- ossl_asn1_info_klass [17 ] = & cASN1Set ;
1439
- ossl_asn1_info_klass [18 ] = & cASN1NumericString ;
1440
- ossl_asn1_info_klass [19 ] = & cASN1PrintableString ;
1441
- ossl_asn1_info_klass [20 ] = & cASN1T61String ;
1442
- ossl_asn1_info_klass [21 ] = & cASN1VideotexString ;
1443
- ossl_asn1_info_klass [22 ] = & cASN1IA5String ;
1444
- ossl_asn1_info_klass [23 ] = & cASN1UTCTime ;
1445
- ossl_asn1_info_klass [24 ] = & cASN1GeneralizedTime ;
1446
- ossl_asn1_info_klass [25 ] = & cASN1GraphicString ;
1447
- ossl_asn1_info_klass [26 ] = & cASN1ISO64String ;
1448
- ossl_asn1_info_klass [27 ] = & cASN1GeneralString ;
1449
- ossl_asn1_info_klass [28 ] = & cASN1UniversalString ;
1450
- ossl_asn1_info_klass [29 ] = NULL ;
1451
- ossl_asn1_info_klass [30 ] = & cASN1BMPString ;
1452
-
1453
1415
VALUE ary ;
1454
1416
int i ;
1455
1417
0 commit comments