Legend:
- Unmodified
- Added
- Removed
-
src/perl5/perl5.c
r6303 r6793 61 61 62 62 "sub TIEARRAY {\n" 63 " my ($class, $val) = @_;\n"64 " bless \\$val, $class; }\n\n"63 " my ($class, $val) = @_;\n" 64 " bless \\$val, $class; }\n\n" 65 65 66 66 "sub STORE {\n" 67 " my ($self, $index, $elem) = @_;\n"67 " my ($self, $index, $elem) = @_;\n" 68 68 oRZ" warn 'store! '.$elem;\n" 69 69 " pugs::guts::eval_apply('sub ($x is rw, $y, $z) { $x[$y] = $z;\n" … … 72 72 73 73 "sub PUSH {\n" 74 " my ($self, $elem) = @_;\n"74 " my ($self, $elem) = @_;\n" 75 75 " pugs::guts::eval_apply('sub ($x is rw, $z) { $x.push($z);\n" 76 76 oRZ" warn $x\n" … … 78 78 79 79 "sub FETCHSIZE {\n" 80 " my ($self) = @_;\n"80 " my ($self) = @_;\n" 81 81 " my $ret = pugs::guts::invoke('elems', $$self); \n" 82 82 oRZ" warn 'FETCHSIZE: '.$ret;\n" … … 84 84 85 85 "sub EXISTS {\n" 86 " my ($self, $index) = @_;\n"86 " my ($self, $index) = @_;\n" 87 87 " pugs::guts::eval_apply('sub ($x, $y) { $x.exists($y) }', $$self, $index) }\n" 88 88 89 89 "sub FETCH {\n" 90 " my ($self, $index) = @_;\n"90 " my ($self, $index) = @_;\n" 91 91 oRZ" warn 'FETCH: '.$index;\n" 92 92 " pugs::guts::eval_apply('sub ($x, $y) { $x.[$y] }', $$self, $index) }\n" … … 99 99 100 100 "sub TIEHASH {\n" 101 " my ($class, $val) = @_;\n"102 " bless [$val,0], $class; }\n\n"101 " my ($class, $val) = @_;\n" 102 " bless [$val,0], $class; }\n\n" 103 103 104 104 "sub FIRSTKEY {\n" 105 " my ($self) = @_;\n"105 " my ($self) = @_;\n" 106 106 " my $ret = pugs::guts::invoke('keys', $self->[0]); \n" 107 107 oRZ" warn $ret;\n" 108 " $self->[1] = 0; $self->[2] = $ret;"108 " $self->[1] = 0; $self->[2] = $ret;" 109 109 " $self->NEXTKEY; }\n" 110 110 111 111 "sub NEXTKEY {\n" 112 " my ($self) = @_;\n"113 " return undef if $self->[1] > $#{$self->[2]};"112 " my ($self) = @_;\n" 113 " return undef if $self->[1] > $#{$self->[2]};" 114 114 " $self->[2]->[$self->[1]++]; }" 115 115 … … 129 129 sv = ST(0); 130 130 if (sv_isa(sv, "pugs")) { 131 val = pugs_SvToVal(ST(0));131 val = pugs_SvToVal(ST(0)); 132 132 } 133 133 else { 134 char *method, *fullname;135 fullname = SvPV_nolen(sv);136 method = strrchr(fullname, ':');137 method = method ? method+1 : fullname;138 val = pugs_PvToVal(method);134 char *method, *fullname; 135 fullname = SvPV_nolen(sv); 136 method = strrchr(fullname, ':'); 137 method = method ? method+1 : fullname; 138 val = pugs_PvToVal(method); 139 139 } 140 140 inv = SvOK(ST(1)) ? pugs_SvToVal(ST(1)) : NULL; … … 142 142 stack = (Val **)malloc(sizeof(Val*)*items-1); 143 143 for (i = 2; i < items; ++i) { 144 stack[i-2] = pugs_SvToVal(ST(i));144 stack[i-2] = pugs_SvToVal(ST(i)); 145 145 } 146 146 stack[i-2] = NULL; … … 167 167 for (i = 1; i < items; ++i) { 168 168 #if PERL5_EMBED_DEBUG 169 fprintf(stderr, "put into stack: %s\n", SvPV_nolen(ST(i)));170 #endif 171 stack[i-1] = pugs_SvToVal(ST(i));169 fprintf(stderr, "put into stack: %s\n", SvPV_nolen(ST(i))); 170 #endif 171 stack[i-1] = pugs_SvToVal(ST(i)); 172 172 } 173 173 stack[i-1] = NULL; … … 265 265 266 266 if (exitstatus == 0) 267 exitstatus = perl_run( my_perl );267 exitstatus = perl_run( my_perl ); 268 268 269 269 __init = 1; -
src/perl5/perlxsi.c
r3873 r6793 9 9 xs_init(pTHX) 10 10 { 11 char *file = __FILE__;12 dXSUB_SYS;11 char *file = __FILE__; 12 dXSUB_SYS; 13 13 14 /* DynaLoader is a special case */15 newXS("DynaLoader::boot_DynaLoader", boot_DynaLoader, file);14 /* DynaLoader is a special case */ 15 newXS("DynaLoader::boot_DynaLoader", boot_DynaLoader, file); 16 16 } -
src/perl5/pugsembed.c
r4262 r6793 22 22 23 23 if (!__init) { 24 fprintf(stderr, "MkValRef called before perl_init.\n");24 fprintf(stderr, "MkValRef called before perl_init.\n"); 25 25 } 26 26 … … 32 32 #endif 33 33 if (SvTRUE( type )) { 34 SV **rv;35 stack[0] = type;36 stack[1] = NULL;37 rv = perl5_apply(newSVpv("can", 0), newSVpv("pugs::guts", 0), stack, NULL, G_SCALAR);38 if (SvTRUE( rv[0] )) {39 stack[0] = sv;40 rv = perl5_apply(type, newSVpv("pugs::guts", 0), stack, NULL, G_SCALAR);41 sv = rv[0];42 }43 else {44 /* for scalar ref, should still turn into tied one */34 SV **rv; 35 stack[0] = type; 36 stack[1] = NULL; 37 rv = perl5_apply(newSVpv("can", 0), newSVpv("pugs::guts", 0), stack, NULL, G_SCALAR); 38 if (SvTRUE( rv[0] )) { 39 stack[0] = sv; 40 rv = perl5_apply(type, newSVpv("pugs::guts", 0), stack, NULL, G_SCALAR); 41 sv = rv[0]; 42 } 43 else { 44 /* for scalar ref, should still turn into tied one */ 45 45 #if PERL5_EMBED_DEBUG 46 fprintf(stderr, "unknown type\n");46 fprintf(stderr, "unknown type\n"); 47 47 #endif 48 }48 } 49 49 } 50 50
