pike.git/
src/
interpret.c
Branch:
Tag:
Non-build tags
All tags
No tags
1999-05-12
1999-05-12 05:26:55 by Fredrik Hübinette (Hubbe) <hubbe@hubbe.net>
2dbfec545c4904701cc54f07534b6b00582a97f8 (
21
lines) (+
12
/-
9
)
[
Show
|
Annotate
]
Branch:
0.6
bugfix for `->
Rev: src/interpret.c:1.112
4:
||| See the files COPYING and DISCLAIMER for more information. \*/ #include "global.h"
-
RCSID("$Id: interpret.c,v 1.
111
1998
/
11
/
22
11
:
02
:
53
hubbe Exp $");
+
RCSID("$Id: interpret.c,v 1.
112
1999
/
05
/
12
05
:
26
:
55
hubbe Exp $");
#include "interpret.h" #include "object.h" #include "program.h"
957:
CASE(F_LTOSVAL2); sp[0]=sp[-1];
-
lvalue_to_svalue_no_free(sp-
1
,sp-
3
);
+
sp[-1].type=T_INT;
+
sp++;
+
lvalue_to_svalue_no_free(sp-
2
,sp-
4
);
/* this is so that foo+=bar (and similar things) will be faster, this * is done by freeing the old reference to foo after it has been pushed
965:
* and then the low array/multiset/mapping manipulation routines can be * destructive if they like */
-
if( (1 << sp[-
1
].type) & ( BIT_ARRAY | BIT_MULTISET | BIT_MAPPING | BIT_STRING ))
+
if( (1 << sp[-
2
].type) & ( BIT_ARRAY | BIT_MULTISET | BIT_MAPPING | BIT_STRING ))
{ struct svalue s; s.type=T_INT; s.subtype=0; s.u.integer=0;
-
assign_lvalue(sp-
3
,&s);
+
assign_lvalue(sp-
4
,&s);
}
-
sp++;
+
break; CASE(F_ADD_TO_AND_POP); sp[0]=sp[-1];
-
lvalue_to_svalue_no_free(sp-
1
,sp-
3
);
+
sp[-1].type=T_INT;
+
sp++;
+
lvalue_to_svalue_no_free(sp-
2
,sp-
4
);
/* this is so that foo+=bar (and similar things) will be faster, this * is done by freeing the old reference to foo after it has been pushed
987:
* and then the low array/multiset/mapping manipulation routines can be * destructive if they like */
-
if( (1 << sp[-
1
].type) & ( BIT_ARRAY | BIT_MULTISET | BIT_MAPPING | BIT_STRING ))
+
if( (1 << sp[-
2
].type) & ( BIT_ARRAY | BIT_MULTISET | BIT_MAPPING | BIT_STRING ))
{ struct svalue s; s.type=T_INT; s.subtype=0; s.u.integer=0;
-
assign_lvalue(sp-
3
,&s);
+
assign_lvalue(sp-
4
,&s);
}
-
sp++;
+
f_add(2); assign_lvalue(sp-3,sp-1); pop_n_elems(3);