json 1.6.3 → 1.6.4

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of json might be problematic. Click here for more details.

data/CHANGES CHANGED
@@ -1,3 +1,7 @@
1
+ 2011-12-24 (1.6.4)
2
+ * Patches that improve speed on JRuby contributed by Charles Oliver Nutter
3
+ <headius@headius.com>.
4
+ * Support object_class/array_class with duck typed hash/array.
1
5
  2011-12-01 (1.6.3)
2
6
  * Let JSON.load('') return nil as well to make mysql text columns (default to
3
7
  '') work better for serialization.
@@ -1,4 +1,4 @@
1
- = JSON implementation for Ruby http://travis-ci.org/flori/json.png
1
+ = JSON implementation for Ruby http://travis-ci.org/flori/json.png?branch=master
2
2
 
3
3
  == Description
4
4
 
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.6.3
1
+ 1.6.4
@@ -5,9 +5,9 @@ unless $CFLAGS.gsub!(/ -O[\dsz]?/, ' -O3')
5
5
  end
6
6
  if CONFIG['CC'] =~ /gcc/
7
7
  $CFLAGS << ' -Wall'
8
- #unless $CFLAGS.gsub!(/ -O[\dsz]?/, ' -O0 -ggdb')
9
- # $CFLAGS << ' -O0 -ggdb'
10
- #end
8
+ unless $DEBUG && !$CFLAGS.gsub!(/ -O[\dsz]?/, ' -O0 -ggdb')
9
+ $CFLAGS << ' -O0 -ggdb'
10
+ end
11
11
  end
12
12
 
13
13
  create_makefile 'json/ext/generator'
@@ -5,9 +5,9 @@ unless $CFLAGS.gsub!(/ -O[\dsz]?/, ' -O3')
5
5
  end
6
6
  if CONFIG['CC'] =~ /gcc/
7
7
  $CFLAGS << ' -Wall'
8
- #unless $CFLAGS.gsub!(/ -O[\dsz]?/, ' -O0 -ggdb')
9
- # $CFLAGS << ' -O0 -ggdb'
10
- #end
8
+ if $DEBUG && !$CFLAGS.gsub!(/ -O[\dsz]?/, ' -O0 -ggdb')
9
+ $CFLAGS << ' -O0 -ggdb'
10
+ end
11
11
  end
12
12
 
13
13
  create_makefile 'json/ext/parser'
@@ -81,7 +81,7 @@ static VALUE CNaN, CInfinity, CMinusInfinity;
81
81
  static ID i_json_creatable_p, i_json_create, i_create_id, i_create_additions,
82
82
  i_chr, i_max_nesting, i_allow_nan, i_symbolize_names, i_quirks_mode,
83
83
  i_object_class, i_array_class, i_key_p, i_deep_const_get, i_match,
84
- i_match_string, i_aset, i_leftshift;
84
+ i_match_string, i_aset, i_aref, i_leftshift;
85
85
 
86
86
 
87
87
  #line 110 "parser.rl"
@@ -445,7 +445,12 @@ case 26:
445
445
 
446
446
  if (cs >= JSON_object_first_final) {
447
447
  if (json->create_additions) {
448
- VALUE klassname = rb_hash_aref(*result, json->create_id);
448
+ VALUE klassname;
449
+ if (NIL_P(json->object_class)) {
450
+ klassname = rb_hash_aref(*result, json->create_id);
451
+ } else {
452
+ klassname = rb_funcall(*result, i_aref, 1, json->create_id);
453
+ }
449
454
  if (!NIL_P(klassname)) {
450
455
  VALUE klass = rb_funcall(mJSON, i_deep_const_get, 1, klassname);
451
456
  if (RTEST(rb_funcall(klass, i_json_creatable_p, 0))) {
@@ -461,7 +466,7 @@ case 26:
461
466
 
462
467
 
463
468
 
464
- #line 465 "parser.c"
469
+ #line 470 "parser.c"
465
470
  static const int JSON_value_start = 1;
466
471
  static const int JSON_value_first_final = 21;
467
472
  static const int JSON_value_error = 0;
@@ -469,7 +474,7 @@ static const int JSON_value_error = 0;
469
474
  static const int JSON_value_en_main = 1;
470
475
 
471
476
 
472
- #line 266 "parser.rl"
477
+ #line 271 "parser.rl"
473
478
 
474
479
 
475
480
  static char *JSON_parse_value(JSON_Parser *json, char *p, char *pe, VALUE *result)
@@ -477,14 +482,14 @@ static char *JSON_parse_value(JSON_Parser *json, char *p, char *pe, VALUE *resul
477
482
  int cs = EVIL;
478
483
 
479
484
 
480
- #line 481 "parser.c"
485
+ #line 486 "parser.c"
481
486
  {
482
487
  cs = JSON_value_start;
483
488
  }
484
489
 
485
- #line 273 "parser.rl"
490
+ #line 278 "parser.rl"
486
491
 
487
- #line 488 "parser.c"
492
+ #line 493 "parser.c"
488
493
  {
489
494
  if ( p == pe )
490
495
  goto _test_eof;
@@ -509,14 +514,14 @@ st0:
509
514
  cs = 0;
510
515
  goto _out;
511
516
  tr0:
512
- #line 214 "parser.rl"
517
+ #line 219 "parser.rl"
513
518
  {
514
519
  char *np = JSON_parse_string(json, p, pe, result);
515
520
  if (np == NULL) { p--; {p++; cs = 21; goto _out;} } else {p = (( np))-1;}
516
521
  }
517
522
  goto st21;
518
523
  tr2:
519
- #line 219 "parser.rl"
524
+ #line 224 "parser.rl"
520
525
  {
521
526
  char *np;
522
527
  if(pe > p + 9 - json->quirks_mode && !strncmp(MinusInfinity, p, 9)) {
@@ -536,7 +541,7 @@ tr2:
536
541
  }
537
542
  goto st21;
538
543
  tr5:
539
- #line 237 "parser.rl"
544
+ #line 242 "parser.rl"
540
545
  {
541
546
  char *np;
542
547
  json->current_nesting++;
@@ -546,7 +551,7 @@ tr5:
546
551
  }
547
552
  goto st21;
548
553
  tr9:
549
- #line 245 "parser.rl"
554
+ #line 250 "parser.rl"
550
555
  {
551
556
  char *np;
552
557
  json->current_nesting++;
@@ -556,7 +561,7 @@ tr9:
556
561
  }
557
562
  goto st21;
558
563
  tr16:
559
- #line 207 "parser.rl"
564
+ #line 212 "parser.rl"
560
565
  {
561
566
  if (json->allow_nan) {
562
567
  *result = CInfinity;
@@ -566,7 +571,7 @@ tr16:
566
571
  }
567
572
  goto st21;
568
573
  tr18:
569
- #line 200 "parser.rl"
574
+ #line 205 "parser.rl"
570
575
  {
571
576
  if (json->allow_nan) {
572
577
  *result = CNaN;
@@ -576,19 +581,19 @@ tr18:
576
581
  }
577
582
  goto st21;
578
583
  tr22:
579
- #line 194 "parser.rl"
584
+ #line 199 "parser.rl"
580
585
  {
581
586
  *result = Qfalse;
582
587
  }
583
588
  goto st21;
584
589
  tr25:
585
- #line 191 "parser.rl"
590
+ #line 196 "parser.rl"
586
591
  {
587
592
  *result = Qnil;
588
593
  }
589
594
  goto st21;
590
595
  tr28:
591
- #line 197 "parser.rl"
596
+ #line 202 "parser.rl"
592
597
  {
593
598
  *result = Qtrue;
594
599
  }
@@ -597,9 +602,9 @@ st21:
597
602
  if ( ++p == pe )
598
603
  goto _test_eof21;
599
604
  case 21:
600
- #line 253 "parser.rl"
605
+ #line 258 "parser.rl"
601
606
  { p--; {p++; cs = 21; goto _out;} }
602
- #line 603 "parser.c"
607
+ #line 608 "parser.c"
603
608
  goto st0;
604
609
  st2:
605
610
  if ( ++p == pe )
@@ -760,7 +765,7 @@ case 20:
760
765
  _out: {}
761
766
  }
762
767
 
763
- #line 274 "parser.rl"
768
+ #line 279 "parser.rl"
764
769
 
765
770
  if (cs >= JSON_value_first_final) {
766
771
  return p;
@@ -770,7 +775,7 @@ case 20:
770
775
  }
771
776
 
772
777
 
773
- #line 774 "parser.c"
778
+ #line 779 "parser.c"
774
779
  static const int JSON_integer_start = 1;
775
780
  static const int JSON_integer_first_final = 3;
776
781
  static const int JSON_integer_error = 0;
@@ -778,7 +783,7 @@ static const int JSON_integer_error = 0;
778
783
  static const int JSON_integer_en_main = 1;
779
784
 
780
785
 
781
- #line 290 "parser.rl"
786
+ #line 295 "parser.rl"
782
787
 
783
788
 
784
789
  static char *JSON_parse_integer(JSON_Parser *json, char *p, char *pe, VALUE *result)
@@ -786,15 +791,15 @@ static char *JSON_parse_integer(JSON_Parser *json, char *p, char *pe, VALUE *res
786
791
  int cs = EVIL;
787
792
 
788
793
 
789
- #line 790 "parser.c"
794
+ #line 795 "parser.c"
790
795
  {
791
796
  cs = JSON_integer_start;
792
797
  }
793
798
 
794
- #line 297 "parser.rl"
799
+ #line 302 "parser.rl"
795
800
  json->memo = p;
796
801
 
797
- #line 798 "parser.c"
802
+ #line 803 "parser.c"
798
803
  {
799
804
  if ( p == pe )
800
805
  goto _test_eof;
@@ -828,14 +833,14 @@ case 3:
828
833
  goto st0;
829
834
  goto tr4;
830
835
  tr4:
831
- #line 287 "parser.rl"
836
+ #line 292 "parser.rl"
832
837
  { p--; {p++; cs = 4; goto _out;} }
833
838
  goto st4;
834
839
  st4:
835
840
  if ( ++p == pe )
836
841
  goto _test_eof4;
837
842
  case 4:
838
- #line 839 "parser.c"
843
+ #line 844 "parser.c"
839
844
  goto st0;
840
845
  st5:
841
846
  if ( ++p == pe )
@@ -854,7 +859,7 @@ case 5:
854
859
  _out: {}
855
860
  }
856
861
 
857
- #line 299 "parser.rl"
862
+ #line 304 "parser.rl"
858
863
 
859
864
  if (cs >= JSON_integer_first_final) {
860
865
  long len = p - json->memo;
@@ -869,7 +874,7 @@ case 5:
869
874
  }
870
875
 
871
876
 
872
- #line 873 "parser.c"
877
+ #line 878 "parser.c"
873
878
  static const int JSON_float_start = 1;
874
879
  static const int JSON_float_first_final = 8;
875
880
  static const int JSON_float_error = 0;
@@ -877,7 +882,7 @@ static const int JSON_float_error = 0;
877
882
  static const int JSON_float_en_main = 1;
878
883
 
879
884
 
880
- #line 324 "parser.rl"
885
+ #line 329 "parser.rl"
881
886
 
882
887
 
883
888
  static char *JSON_parse_float(JSON_Parser *json, char *p, char *pe, VALUE *result)
@@ -885,15 +890,15 @@ static char *JSON_parse_float(JSON_Parser *json, char *p, char *pe, VALUE *resul
885
890
  int cs = EVIL;
886
891
 
887
892
 
888
- #line 889 "parser.c"
893
+ #line 894 "parser.c"
889
894
  {
890
895
  cs = JSON_float_start;
891
896
  }
892
897
 
893
- #line 331 "parser.rl"
898
+ #line 336 "parser.rl"
894
899
  json->memo = p;
895
900
 
896
- #line 897 "parser.c"
901
+ #line 902 "parser.c"
897
902
  {
898
903
  if ( p == pe )
899
904
  goto _test_eof;
@@ -951,14 +956,14 @@ case 8:
951
956
  goto st0;
952
957
  goto tr9;
953
958
  tr9:
954
- #line 318 "parser.rl"
959
+ #line 323 "parser.rl"
955
960
  { p--; {p++; cs = 9; goto _out;} }
956
961
  goto st9;
957
962
  st9:
958
963
  if ( ++p == pe )
959
964
  goto _test_eof9;
960
965
  case 9:
961
- #line 962 "parser.c"
966
+ #line 967 "parser.c"
962
967
  goto st0;
963
968
  st5:
964
969
  if ( ++p == pe )
@@ -1019,7 +1024,7 @@ case 7:
1019
1024
  _out: {}
1020
1025
  }
1021
1026
 
1022
- #line 333 "parser.rl"
1027
+ #line 338 "parser.rl"
1023
1028
 
1024
1029
  if (cs >= JSON_float_first_final) {
1025
1030
  long len = p - json->memo;
@@ -1035,7 +1040,7 @@ case 7:
1035
1040
 
1036
1041
 
1037
1042
 
1038
- #line 1039 "parser.c"
1043
+ #line 1044 "parser.c"
1039
1044
  static const int JSON_array_start = 1;
1040
1045
  static const int JSON_array_first_final = 17;
1041
1046
  static const int JSON_array_error = 0;
@@ -1043,7 +1048,7 @@ static const int JSON_array_error = 0;
1043
1048
  static const int JSON_array_en_main = 1;
1044
1049
 
1045
1050
 
1046
- #line 376 "parser.rl"
1051
+ #line 381 "parser.rl"
1047
1052
 
1048
1053
 
1049
1054
  static char *JSON_parse_array(JSON_Parser *json, char *p, char *pe, VALUE *result)
@@ -1057,14 +1062,14 @@ static char *JSON_parse_array(JSON_Parser *json, char *p, char *pe, VALUE *resul
1057
1062
  *result = NIL_P(array_class) ? rb_ary_new() : rb_class_new_instance(0, 0, array_class);
1058
1063
 
1059
1064
 
1060
- #line 1061 "parser.c"
1065
+ #line 1066 "parser.c"
1061
1066
  {
1062
1067
  cs = JSON_array_start;
1063
1068
  }
1064
1069
 
1065
- #line 389 "parser.rl"
1070
+ #line 394 "parser.rl"
1066
1071
 
1067
- #line 1068 "parser.c"
1072
+ #line 1073 "parser.c"
1068
1073
  {
1069
1074
  if ( p == pe )
1070
1075
  goto _test_eof;
@@ -1103,7 +1108,7 @@ case 2:
1103
1108
  goto st2;
1104
1109
  goto st0;
1105
1110
  tr2:
1106
- #line 353 "parser.rl"
1111
+ #line 358 "parser.rl"
1107
1112
  {
1108
1113
  VALUE v = Qnil;
1109
1114
  char *np = JSON_parse_value(json, p, pe, &v);
@@ -1123,7 +1128,7 @@ st3:
1123
1128
  if ( ++p == pe )
1124
1129
  goto _test_eof3;
1125
1130
  case 3:
1126
- #line 1127 "parser.c"
1131
+ #line 1132 "parser.c"
1127
1132
  switch( (*p) ) {
1128
1133
  case 13: goto st3;
1129
1134
  case 32: goto st3;
@@ -1223,14 +1228,14 @@ case 12:
1223
1228
  goto st3;
1224
1229
  goto st12;
1225
1230
  tr4:
1226
- #line 368 "parser.rl"
1231
+ #line 373 "parser.rl"
1227
1232
  { p--; {p++; cs = 17; goto _out;} }
1228
1233
  goto st17;
1229
1234
  st17:
1230
1235
  if ( ++p == pe )
1231
1236
  goto _test_eof17;
1232
1237
  case 17:
1233
- #line 1234 "parser.c"
1238
+ #line 1239 "parser.c"
1234
1239
  goto st0;
1235
1240
  st13:
1236
1241
  if ( ++p == pe )
@@ -1286,7 +1291,7 @@ case 16:
1286
1291
  _out: {}
1287
1292
  }
1288
1293
 
1289
- #line 390 "parser.rl"
1294
+ #line 395 "parser.rl"
1290
1295
 
1291
1296
  if(cs >= JSON_array_first_final) {
1292
1297
  return p + 1;
@@ -1367,7 +1372,7 @@ static VALUE json_string_unescape(VALUE result, char *string, char *stringEnd)
1367
1372
  }
1368
1373
 
1369
1374
 
1370
- #line 1371 "parser.c"
1375
+ #line 1376 "parser.c"
1371
1376
  static const int JSON_string_start = 1;
1372
1377
  static const int JSON_string_first_final = 8;
1373
1378
  static const int JSON_string_error = 0;
@@ -1375,7 +1380,7 @@ static const int JSON_string_error = 0;
1375
1380
  static const int JSON_string_en_main = 1;
1376
1381
 
1377
1382
 
1378
- #line 489 "parser.rl"
1383
+ #line 494 "parser.rl"
1379
1384
 
1380
1385
 
1381
1386
  static int
@@ -1397,15 +1402,15 @@ static char *JSON_parse_string(JSON_Parser *json, char *p, char *pe, VALUE *resu
1397
1402
 
1398
1403
  *result = rb_str_buf_new(0);
1399
1404
 
1400
- #line 1401 "parser.c"
1405
+ #line 1406 "parser.c"
1401
1406
  {
1402
1407
  cs = JSON_string_start;
1403
1408
  }
1404
1409
 
1405
- #line 510 "parser.rl"
1410
+ #line 515 "parser.rl"
1406
1411
  json->memo = p;
1407
1412
 
1408
- #line 1409 "parser.c"
1413
+ #line 1414 "parser.c"
1409
1414
  {
1410
1415
  if ( p == pe )
1411
1416
  goto _test_eof;
@@ -1430,7 +1435,7 @@ case 2:
1430
1435
  goto st0;
1431
1436
  goto st2;
1432
1437
  tr2:
1433
- #line 475 "parser.rl"
1438
+ #line 480 "parser.rl"
1434
1439
  {
1435
1440
  *result = json_string_unescape(*result, json->memo + 1, p);
1436
1441
  if (NIL_P(*result)) {
@@ -1441,14 +1446,14 @@ tr2:
1441
1446
  {p = (( p + 1))-1;}
1442
1447
  }
1443
1448
  }
1444
- #line 486 "parser.rl"
1449
+ #line 491 "parser.rl"
1445
1450
  { p--; {p++; cs = 8; goto _out;} }
1446
1451
  goto st8;
1447
1452
  st8:
1448
1453
  if ( ++p == pe )
1449
1454
  goto _test_eof8;
1450
1455
  case 8:
1451
- #line 1452 "parser.c"
1456
+ #line 1457 "parser.c"
1452
1457
  goto st0;
1453
1458
  st3:
1454
1459
  if ( ++p == pe )
@@ -1524,7 +1529,7 @@ case 7:
1524
1529
  _out: {}
1525
1530
  }
1526
1531
 
1527
- #line 512 "parser.rl"
1532
+ #line 517 "parser.rl"
1528
1533
 
1529
1534
  if (json->create_additions && RTEST(match_string = json->match_string)) {
1530
1535
  VALUE klass;
@@ -1723,7 +1728,7 @@ static VALUE cParser_initialize(int argc, VALUE *argv, VALUE self)
1723
1728
  }
1724
1729
 
1725
1730
 
1726
- #line 1727 "parser.c"
1731
+ #line 1732 "parser.c"
1727
1732
  static const int JSON_start = 1;
1728
1733
  static const int JSON_first_final = 10;
1729
1734
  static const int JSON_error = 0;
@@ -1731,7 +1736,7 @@ static const int JSON_error = 0;
1731
1736
  static const int JSON_en_main = 1;
1732
1737
 
1733
1738
 
1734
- #line 734 "parser.rl"
1739
+ #line 739 "parser.rl"
1735
1740
 
1736
1741
 
1737
1742
  static VALUE cParser_parse_strict(VALUE self)
@@ -1742,16 +1747,16 @@ static VALUE cParser_parse_strict(VALUE self)
1742
1747
  GET_PARSER;
1743
1748
 
1744
1749
 
1745
- #line 1746 "parser.c"
1750
+ #line 1751 "parser.c"
1746
1751
  {
1747
1752
  cs = JSON_start;
1748
1753
  }
1749
1754
 
1750
- #line 744 "parser.rl"
1755
+ #line 749 "parser.rl"
1751
1756
  p = json->source;
1752
1757
  pe = p + json->len;
1753
1758
 
1754
- #line 1755 "parser.c"
1759
+ #line 1760 "parser.c"
1755
1760
  {
1756
1761
  if ( p == pe )
1757
1762
  goto _test_eof;
@@ -1807,7 +1812,7 @@ case 5:
1807
1812
  goto st1;
1808
1813
  goto st5;
1809
1814
  tr3:
1810
- #line 723 "parser.rl"
1815
+ #line 728 "parser.rl"
1811
1816
  {
1812
1817
  char *np;
1813
1818
  json->current_nesting = 1;
@@ -1816,7 +1821,7 @@ tr3:
1816
1821
  }
1817
1822
  goto st10;
1818
1823
  tr4:
1819
- #line 716 "parser.rl"
1824
+ #line 721 "parser.rl"
1820
1825
  {
1821
1826
  char *np;
1822
1827
  json->current_nesting = 1;
@@ -1828,7 +1833,7 @@ st10:
1828
1833
  if ( ++p == pe )
1829
1834
  goto _test_eof10;
1830
1835
  case 10:
1831
- #line 1832 "parser.c"
1836
+ #line 1837 "parser.c"
1832
1837
  switch( (*p) ) {
1833
1838
  case 13: goto st10;
1834
1839
  case 32: goto st10;
@@ -1885,7 +1890,7 @@ case 9:
1885
1890
  _out: {}
1886
1891
  }
1887
1892
 
1888
- #line 747 "parser.rl"
1893
+ #line 752 "parser.rl"
1889
1894
 
1890
1895
  if (cs >= JSON_first_final && p == pe) {
1891
1896
  return result;
@@ -1897,7 +1902,7 @@ case 9:
1897
1902
 
1898
1903
 
1899
1904
 
1900
- #line 1901 "parser.c"
1905
+ #line 1906 "parser.c"
1901
1906
  static const int JSON_quirks_mode_start = 1;
1902
1907
  static const int JSON_quirks_mode_first_final = 10;
1903
1908
  static const int JSON_quirks_mode_error = 0;
@@ -1905,7 +1910,7 @@ static const int JSON_quirks_mode_error = 0;
1905
1910
  static const int JSON_quirks_mode_en_main = 1;
1906
1911
 
1907
1912
 
1908
- #line 772 "parser.rl"
1913
+ #line 777 "parser.rl"
1909
1914
 
1910
1915
 
1911
1916
  static VALUE cParser_parse_quirks_mode(VALUE self)
@@ -1916,16 +1921,16 @@ static VALUE cParser_parse_quirks_mode(VALUE self)
1916
1921
  GET_PARSER;
1917
1922
 
1918
1923
 
1919
- #line 1920 "parser.c"
1924
+ #line 1925 "parser.c"
1920
1925
  {
1921
1926
  cs = JSON_quirks_mode_start;
1922
1927
  }
1923
1928
 
1924
- #line 782 "parser.rl"
1929
+ #line 787 "parser.rl"
1925
1930
  p = json->source;
1926
1931
  pe = p + json->len;
1927
1932
 
1928
- #line 1929 "parser.c"
1933
+ #line 1934 "parser.c"
1929
1934
  {
1930
1935
  if ( p == pe )
1931
1936
  goto _test_eof;
@@ -1959,7 +1964,7 @@ st0:
1959
1964
  cs = 0;
1960
1965
  goto _out;
1961
1966
  tr2:
1962
- #line 764 "parser.rl"
1967
+ #line 769 "parser.rl"
1963
1968
  {
1964
1969
  char *np = JSON_parse_value(json, p, pe, &result);
1965
1970
  if (np == NULL) { p--; {p++; cs = 10; goto _out;} } else {p = (( np))-1;}
@@ -1969,7 +1974,7 @@ st10:
1969
1974
  if ( ++p == pe )
1970
1975
  goto _test_eof10;
1971
1976
  case 10:
1972
- #line 1973 "parser.c"
1977
+ #line 1978 "parser.c"
1973
1978
  switch( (*p) ) {
1974
1979
  case 13: goto st10;
1975
1980
  case 32: goto st10;
@@ -2058,7 +2063,7 @@ case 9:
2058
2063
  _out: {}
2059
2064
  }
2060
2065
 
2061
- #line 785 "parser.rl"
2066
+ #line 790 "parser.rl"
2062
2067
 
2063
2068
  if (cs >= JSON_quirks_mode_first_final && p == pe) {
2064
2069
  return result;
@@ -2173,6 +2178,7 @@ void Init_parser()
2173
2178
  i_key_p = rb_intern("key?");
2174
2179
  i_deep_const_get = rb_intern("deep_const_get");
2175
2180
  i_aset = rb_intern("[]=");
2181
+ i_aref = rb_intern("[]");
2176
2182
  i_leftshift = rb_intern("<<");
2177
2183
  #ifdef HAVE_RUBY_ENCODING_H
2178
2184
  CEncoding_UTF_8 = rb_funcall(rb_path2class("Encoding"), rb_intern("find"), 1, rb_str_new2("utf-8"));