- Timestamp:
- 10/14/2006 01:58:02 (2 years ago)
- Files:
-
- 1 modified
-
trunk/ext/ruby/ext/syck/rubyext.c (modified) (80 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/ext/ruby/ext/syck/rubyext.c
r234 r237 54 54 #endif 55 55 56 #ifdef RARRAY_LEN 57 #undef T_SYMBOL 58 #define T_SYMBOL T_STRING 59 static inline long rb_str_len(VALUE s) {return RSTRING_LEN(s);} 60 static inline char *rb_str_ptr(VALUE s) {return RSTRING_PTR(s);} 61 static inline long rb_ary_len(VALUE s) {return RARRAY_LEN(s);} 62 static inline VALUE *rb_ary_ptr(VALUE s) {return RARRAY_PTR(s);} 63 #else 64 static inline long rb_str_len(VALUE s) {return rb_str_len(s);} 65 static inline char *rb_str_ptr(VALUE s) {return rb_str_ptr(s);} 66 static inline long rb_ary_len(VALUE s) {return rb_ary_len(s);} 67 static inline VALUE *rb_ary_ptr(VALUE s) {return rb_ary_ptr(s);} 68 #endif 69 56 70 /* 57 71 * symbols and constants … … 105 119 */ 106 120 VALUE 107 rb_syck_compile(self, port) 108 VALUE self, port; 121 rb_syck_compile(VALUE self, VALUE port) 109 122 { 110 123 SYMID oid; … … 158 171 { 159 172 StringValue(str2); 160 len = RSTRING(str2)->len;161 memcpy( buf + skip, RSTRING(str2)->ptr, len );173 len = rb_str_len(str2); 174 memcpy( buf + skip, rb_str_ptr(str2), len ); 162 175 } 163 176 } … … 172 185 */ 173 186 int 174 syck_parser_assign_io(parser, pport) 175 SyckParser *parser; 176 VALUE *pport; 187 syck_parser_assign_io(SyckParser *parser, VALUE *pport) 177 188 { 178 189 int taint = Qtrue; … … 181 192 taint = OBJ_TAINTED(port); /* original taintedness */ 182 193 port = tmp; 183 syck_parser_str( parser, RSTRING(port)->ptr, RSTRING(port)->len, NULL );194 syck_parser_str( parser, rb_str_ptr(port), rb_str_len(port), NULL ); 184 195 } 185 196 else if (rb_respond_to(port, s_read)) { … … 200 211 */ 201 212 VALUE 202 syck_get_hash_aref(hsh, key) 203 VALUE hsh, key; 213 syck_get_hash_aref(VALUE hsh, VALUE key) 204 214 { 205 215 VALUE val = rb_hash_aref( hsh, key ); … … 216 226 */ 217 227 SYMID 218 rb_syck_mktime(str, len) 219 char *str; 220 long len; 228 rb_syck_mktime(char *str, long len) 221 229 { 222 230 VALUE time; … … 323 331 */ 324 332 VALUE 325 syck_merge_i( entry, hsh ) 326 VALUE entry, hsh; 333 syck_merge_i(VALUE entry, VALUE hsh) 327 334 { 328 335 VALUE tmp; … … 339 346 */ 340 347 int 341 yaml_org_handler( n, ref ) 342 SyckNode *n; 343 VALUE *ref; 348 yaml_org_handler(SyckNode *n, VALUE *ref) 344 349 { 345 350 char *type_id = n->type_id; … … 610 615 */ 611 616 SYMID 612 rb_syck_load_handler(p, n) 613 SyckParser *p; 614 SyckNode *n; 617 rb_syck_load_handler(SyckParser *p, SyckNode *n) 615 618 { 616 619 VALUE obj = Qnil; … … 648 651 */ 649 652 void 650 rb_syck_err_handler(p, msg) 651 SyckParser *p; 652 char *msg; 653 rb_syck_err_handler(SyckParser *p, char *msg) 653 654 { 654 655 char *endl = p->cursor; … … 669 670 */ 670 671 SyckNode * 671 rb_syck_bad_anchor_handler(p, a) 672 SyckParser *p; 673 char *a; 672 rb_syck_bad_anchor_handler(SyckParser *p, char *a) 674 673 { 675 674 VALUE anchor_name = rb_str_new2( a ); … … 683 682 */ 684 683 void 685 syck_set_model( p, input, model ) 686 VALUE p, input, model; 684 syck_set_model(VALUE p, VALUE input, VALUE model) 687 685 { 688 686 SyckParser *parser; … … 724 722 */ 725 723 static void 726 syck_mark_parser(parser) 727 SyckParser *parser; 724 syck_mark_parser(SyckParser *parser) 728 725 { 729 726 struct parser_xtra *bonus = (struct parser_xtra *)parser->bonus; … … 748 745 */ 749 746 void 750 rb_syck_free_parser(p) 751 SyckParser *p; 747 rb_syck_free_parser(SyckParser *p) 752 748 { 753 749 S_FREE( p->bonus ); … … 760 756 VALUE syck_parser_s_alloc _((VALUE)); 761 757 VALUE 762 syck_parser_s_alloc(class) 763 VALUE class; 758 syck_parser_s_alloc(VALUE class) 764 759 { 765 760 VALUE pobj; … … 780 775 */ 781 776 static VALUE 782 syck_parser_initialize(argc, argv, self) 783 int argc; 784 VALUE *argv; 785 VALUE self; 777 syck_parser_initialize(int argc, VALUE *argv, VALUE self) 786 778 { 787 779 VALUE options; … … 804 796 */ 805 797 static VALUE 806 syck_parser_bufsize_set( self, size ) 807 VALUE self, size; 798 syck_parser_bufsize_set(VALUE self, VALUE size) 808 799 { 809 800 SyckParser *parser; … … 821 812 */ 822 813 static VALUE 823 syck_parser_bufsize_get( self ) 824 VALUE self; 814 syck_parser_bufsize_get(VALUE self) 825 815 { 826 816 SyckParser *parser; … … 834 824 */ 835 825 VALUE 836 syck_parser_load(argc, argv, self) 837 int argc; 838 VALUE *argv; 839 VALUE self; 826 syck_parser_load(int argc, VALUE *argv, VALUE self) 840 827 { 841 828 VALUE port, proc, model, input; … … 864 851 */ 865 852 VALUE 866 syck_parser_load_documents(argc, argv, self) 867 int argc; 868 VALUE *argv; 869 VALUE self; 853 syck_parser_load_documents(int argc, VALUE *argv, VALUE self) 870 854 { 871 855 VALUE port, proc, v, input, model; … … 908 892 */ 909 893 VALUE 910 syck_parser_set_resolver( self, resolver ) 911 VALUE self, resolver; 894 syck_parser_set_resolver(VALUE self, VALUE resolver) 912 895 { 913 896 rb_ivar_set( self, s_resolver, resolver ); … … 919 902 */ 920 903 static VALUE 921 syck_resolver_initialize( self ) 922 VALUE self; 904 syck_resolver_initialize(VALUE self) 923 905 { 924 906 VALUE tags = rb_hash_new(); … … 931 913 */ 932 914 VALUE 933 syck_resolver_add_type( self, taguri, cls ) 934 VALUE self, taguri, cls; 915 syck_resolver_add_type(VALUE self, VALUE taguri, VALUE cls) 935 916 { 936 917 VALUE tags = rb_attr_get(self, s_tags); … … 943 924 */ 944 925 VALUE 945 syck_resolver_use_types_at( self, hsh ) 946 VALUE self, hsh; 926 syck_resolver_use_types_at(VALUE self, VALUE hsh) 947 927 { 948 928 rb_ivar_set( self, s_tags, hsh ); … … 954 934 */ 955 935 VALUE 956 syck_resolver_detect_implicit( self, val ) 957 VALUE self, val; 936 syck_resolver_detect_implicit(VALUE self, VALUE val) 958 937 { 959 938 char *type_id; … … 965 944 */ 966 945 VALUE 967 syck_resolver_node_import( self, node ) 968 VALUE self, node; 946 syck_resolver_node_import(VALUE self, VALUE node) 969 947 { 970 948 SyckNode *n; … … 1046 1024 */ 1047 1025 VALUE 1048 syck_set_ivars( vars, obj ) 1049 VALUE vars, obj; 1026 syck_set_ivars(VALUE vars, VALUE obj) 1050 1027 { 1051 1028 VALUE ivname = rb_ary_entry( vars, 0 ); 1052 1029 char *ivn; 1053 1030 StringValue( ivname ); 1054 ivn = S_ALLOCA_N( char, RSTRING(ivname)->len+ 2 );1031 ivn = S_ALLOCA_N( char, rb_str_len(ivname) + 2 ); 1055 1032 ivn[0] = '@'; 1056 1033 ivn[1] = '\0'; 1057 strncat( ivn, RSTRING(ivname)->ptr, RSTRING(ivname)->len);1034 strncat( ivn, rb_str_ptr(ivname), rb_str_len(ivname) ); 1058 1035 rb_iv_set( obj, ivn, rb_ary_entry( vars, 1 ) ); 1059 1036 return Qnil; … … 1064 1041 */ 1065 1042 VALUE 1066 syck_const_find( const_name ) 1067 VALUE const_name; 1043 syck_const_find(VALUE const_name) 1068 1044 { 1069 1045 VALUE tclass = rb_cObject; 1070 1046 VALUE tparts = rb_str_split( const_name, "::" ); 1071 1047 int i = 0; 1072 for ( i = 0; i < RARRAY(tparts)->len; i++ ) {1048 for ( i = 0; i < rb_ary_len(tparts); i++ ) { 1073 1049 VALUE tpart = rb_to_id( rb_ary_entry( tparts, i ) ); 1074 1050 if ( !rb_const_defined( tclass, tpart ) ) return Qnil; … … 1082 1058 */ 1083 1059 VALUE 1084 syck_resolver_transfer( self, type, val ) 1085 VALUE self, type, val; 1086 { 1087 if (NIL_P(type) || RSTRING(StringValue(type))->len == 0) 1060 syck_resolver_transfer(VALUE self, VALUE type, VALUE val) 1061 { 1062 if (NIL_P(type) || rb_str_len(StringValue(type)) == 0) 1088 1063 { 1089 1064 type = rb_funcall( self, s_detect_implicit, 1, val ); 1090 1065 } 1091 1066 1092 if ( ! (NIL_P(type) || RSTRING(StringValue(type))->len== 0) )1067 if ( ! (NIL_P(type) || rb_str_len(StringValue(type)) == 0) ) 1093 1068 { 1094 1069 VALUE str_xprivate = rb_str_new2( "x-private" ); … … 1107 1082 VALUE parts = rb_str_split( type, ":" ); 1108 1083 1109 while ( RARRAY(parts)->len> 1 )1084 while ( rb_ary_len(parts) > 1 ) 1110 1085 { 1111 1086 VALUE partial; … … 1125 1100 { 1126 1101 subclass = target_class; 1127 if ( RARRAY(subclass_parts)->len> 0 && rb_respond_to( target_class, s_tag_subclasses ) &&1102 if ( rb_ary_len(subclass_parts) > 0 && rb_respond_to( target_class, s_tag_subclasses ) && 1128 1103 RTEST( rb_funcall( target_class, s_tag_subclasses, 0 ) ) ) 1129 1104 { … … 1214 1189 */ 1215 1190 VALUE 1216 syck_resolver_tagurize( self, val ) 1217 VALUE self, val; 1191 syck_resolver_tagurize(VALUE self, VALUE val) 1218 1192 { 1219 1193 VALUE tmp = rb_check_string_type(val); … … 1221 1195 if ( !NIL_P(tmp) ) 1222 1196 { 1223 char *taguri = syck_type_id_to_uri( RSTRING(tmp)->ptr);1197 char *taguri = syck_type_id_to_uri( rb_str_ptr(tmp) ); 1224 1198 val = rb_str_new2( taguri ); 1225 1199 S_FREE( taguri ); … … 1233 1207 */ 1234 1208 VALUE 1235 syck_defaultresolver_detect_implicit( self, val ) 1236 VALUE self, val; 1209 syck_defaultresolver_detect_implicit(VALUE self, VALUE val) 1237 1210 { 1238 1211 char *type_id; … … 1242 1215 { 1243 1216 val = tmp; 1244 type_id = syck_match_implicit( RSTRING(val)->ptr, RSTRING(val)->len);1217 type_id = syck_match_implicit( rb_str_ptr(val), rb_str_len(val) ); 1245 1218 return rb_str_new2( type_id ); 1246 1219 } … … 1253 1226 */ 1254 1227 VALUE 1255 syck_defaultresolver_node_import( self, node ) 1256 VALUE self, node; 1228 syck_defaultresolver_node_import(VALUE self, VALUE node) 1257 1229 { 1258 1230 SyckNode *n; … … 1270 1242 */ 1271 1243 VALUE 1272 syck_genericresolver_node_import( self, node ) 1273 VALUE self, node; 1244 syck_genericresolver_node_import(VALUE self, VALUE node) 1274 1245 { 1275 1246 SyckNode *n; … … 1348 1319 */ 1349 1320 VALUE 1350 syck_badalias_initialize( self, val ) 1351 VALUE self, val; 1321 syck_badalias_initialize(VALUE self, VALUE val) 1352 1322 { 1353 1323 rb_iv_set( self, "@name", val ); … … 1359 1329 */ 1360 1330 VALUE 1361 syck_badalias_cmp( alias1, alias2 ) 1362 VALUE alias1, alias2; 1331 syck_badalias_cmp(VALUE alias1, VALUE alias2) 1363 1332 { 1364 1333 VALUE str1 = rb_ivar_get( alias1, s_name ); … … 1372 1341 */ 1373 1342 VALUE 1374 syck_domaintype_initialize( self, domain, type_id, val ) 1375 VALUE self, domain, type_id, val; 1343 syck_domaintype_initialize(VALUE self, VALUE domain, VALUE type_id, VALUE val) 1376 1344 { 1377 1345 rb_iv_set( self, "@domain", domain ); … … 1385 1353 */ 1386 1354 VALUE 1387 syck_yobject_initialize( self, klass, ivars ) 1388 VALUE self, klass, ivars; 1355 syck_yobject_initialize(VALUE self, VALUE klass, VALUE ivars) 1389 1356 { 1390 1357 rb_iv_set( self, "@class", klass ); … … 1397 1364 */ 1398 1365 VALUE 1399 syck_privatetype_initialize( self, type_id, val ) 1400 VALUE self, type_id, val; 1366 syck_privatetype_initialize(VALUE self, VALUE type_id, VALUE val) 1401 1367 { 1402 1368 rb_iv_set( self, "@type_id", type_id ); … … 1409 1375 */ 1410 1376 static void 1411 syck_node_mark( n ) 1412 SyckNode *n; 1377 syck_node_mark(SyckNode *n) 1413 1378 { 1414 1379 int i; … … 1440 1405 */ 1441 1406 VALUE 1442 syck_scalar_alloc( class ) 1443 VALUE class; 1407 syck_scalar_alloc(VALUE class) 1444 1408 { 1445 1409 SyckNode *node = syck_alloc_str(); … … 1453 1417 */ 1454 1418 VALUE 1455 syck_scalar_initialize( self, type_id, val, style ) 1456 VALUE self, type_id, val, style; 1419 syck_scalar_initialize(VALUE self, VALUE type_id, VALUE val, VALUE style) 1457 1420 { 1458 1421 rb_iv_set( self, "@kind", sym_scalar ); … … 1467 1430 */ 1468 1431 VALUE 1469 syck_scalar_style_set( self, style ) 1470 VALUE self, style; 1432 syck_scalar_style_set(VALUE self, VALUE style) 1471 1433 { 1472 1434 SyckNode *node; … … 1506 1468 */ 1507 1469 VALUE 1508 syck_scalar_value_set( self, val ) 1509 VALUE self, val; 1470 syck_scalar_value_set(VALUE self, VALUE val) 1510 1471 { 1511 1472 SyckNode *node; … … 1513 1474 1514 1475 StringValue( val ); 1515 node->data.str->ptr = syck_strndup( RSTRING(val)->ptr, RSTRING(val)->len);1516 node->data.str->len = RSTRING(val)->len;1476 node->data.str->ptr = syck_strndup( rb_str_ptr(val), rb_str_len(val) ); 1477 node->data.str->len = rb_str_len(val); 1517 1478 node->data.str->style = scalar_none; 1518 1479 … … 1525 1486 */ 1526 1487 VALUE 1527 syck_seq_alloc( class ) 1528 VALUE class; 1488 syck_seq_alloc(VALUE class) 1529 1489 { 1530 1490 SyckNode *node; … … 1540 1500 */ 1541 1501 VALUE 1542 syck_seq_initialize( self, type_id, val, style ) 1543 VALUE self, type_id, val, style; 1502 syck_seq_initialize(VALUE self, VALUE type_id, VALUE val, VALUE style) 1544 1503 { 1545 1504 SyckNode *node; … … 1557 1516 */ 1558 1517 VALUE 1559 syck_seq_value_set( self, val ) 1560 VALUE self, val; 1518 syck_seq_value_set(VALUE self, VALUE val) 1561 1519 { 1562 1520 SyckNode *node; … … 1567 1525 int i; 1568 1526 syck_seq_empty( node ); 1569 for ( i = 0; i < RARRAY( val )->len; i++ )1527 for ( i = 0; i < rb_ary_len( val ); i++ ) 1570 1528 { 1571 1529 syck_seq_add( node, rb_ary_entry(val, i) ); … … 1581 1539 */ 1582 1540 VALUE 1583 syck_seq_add_m( self, val ) 1584 VALUE self, val; 1541 syck_seq_add_m(VALUE self, VALUE val) 1585 1542 { 1586 1543 SyckNode *node; … … 1601 1558 */ 1602 1559 VALUE 1603 syck_seq_style_set( self, style ) 1604 VALUE self, style; 1560 syck_seq_style_set(VALUE self, VALUE style) 1605 1561 { 1606 1562 SyckNode *node; … … 1624 1580 */ 1625 1581 VALUE 1626 syck_map_alloc( class ) 1627 VALUE class; 1582 syck_map_alloc(VALUE class) 1628 1583 { 1629 1584 SyckNode *node; … … 1639 1594 */ 1640 1595 VALUE 1641 syck_map_initialize( self, type_id, val, style ) 1642 VALUE self, type_id, val, style; 1596 syck_map_initialize(VALUE self, VALUE type_id, VALUE val, VALUE style) 1643 1597 { 1644 1598 SyckNode *node; … … 1656 1610 1657 1611 keys = rb_funcall( hsh, s_keys, 0 ); 1658 for ( i = 0; i < RARRAY(keys)->len; i++ )1612 for ( i = 0; i < rb_ary_len(keys); i++ ) 1659 1613 { 1660 1614 VALUE key = rb_ary_entry(keys, i); … … 1674 1628 */ 1675 1629 VALUE 1676 syck_map_value_set( self, val ) 1677 VALUE self, val; 1630 syck_map_value_set(VALUE self, VALUE val) 1678 1631 { 1679 1632 SyckNode *node; … … 1692 1645 syck_map_empty( node ); 1693 1646 keys = rb_funcall( hsh, s_keys, 0 ); 1694 for ( i = 0; i < RARRAY(keys)->len; i++ )1647 for ( i = 0; i < rb_ary_len(keys); i++ ) 1695 1648 { 1696 1649 VALUE key = rb_ary_entry(keys, i); … … 1707 1660 */ 1708 1661 VALUE 1709 syck_map_add_m( self, key, val ) 1710 VALUE self, key, val; 1662 syck_map_add_m(VALUE self, VALUE key, VALUE val) 1711 1663 { 1712 1664 SyckNode *node; … … 1728 1680 */ 1729 1681 VALUE 1730 syck_map_style_set( self, style ) 1731 VALUE self, style; 1682 syck_map_style_set(VALUE self, VALUE style) 1732 1683 { 1733 1684 SyckNode *node; … … 1751 1702 */ 1752 1703 VALUE 1753 syck_node_init_copy( copy, orig ) 1754 VALUE copy, orig; 1704 syck_node_init_copy(VALUE copy, VALUE orig) 1755 1705 { 1756 1706 SyckNode *copy_n; … … 1775 1725 */ 1776 1726 VALUE 1777 syck_node_type_id_set( self, type_id ) 1778 VALUE self, type_id; 1727 syck_node_type_id_set(VALUE self, VALUE type_id) 1779 1728 { 1780 1729 SyckNode *node; … … 1785 1734 if ( !NIL_P( type_id ) ) { 1786 1735 StringValue( type_id ); 1787 node->type_id = syck_strndup( RSTRING(type_id)->ptr, RSTRING(type_id)->len);1736 node->type_id = syck_strndup( rb_str_ptr(type_id), rb_str_len(type_id) ); 1788 1737 } 1789 1738 … … 1796 1745 */ 1797 1746 VALUE 1798 syck_node_transform( self ) 1799 VALUE self; 1747 syck_node_transform(VALUE self) 1800 1748 { 1801 1749 VALUE t; … … 1853 1801 */ 1854 1802 void 1855 rb_syck_emitter_handler(e, data) 1856 SyckEmitter *e; 1857 st_data_t data; 1803 rb_syck_emitter_handler(SyckEmitter *e, st_data_t data) 1858 1804 { 1859 1805 SyckNode *n; … … 1899 1845 */ 1900 1846 void 1901 rb_syck_output_handler( emitter, str, len ) 1902 SyckEmitter *emitter; 1903 char *str; 1904 long len; 1847 rb_syck_output_handler(SyckEmitter * emitter, char *str, long len) 1905 1848 { 1906 1849 struct emitter_xtra *bonus = (struct emitter_xtra *)emitter->bonus; … … 1918 1861 */ 1919 1862 void 1920 syck_out_mark( emitter, node ) 1921 VALUE emitter, node; 1863 syck_out_mark(VALUE emitter, VALUE node) 1922 1864 { 1923 1865 SyckEmitter *emitterPtr; … … 1936 1878