pike.git/
src/
interpret_functions.h
Branch:
Tag:
Non-build tags
All tags
No tags
2003-02-15
2003-02-15 14:11:48 by Henrik Grubbström (Grubba) <grubba@grubba.org>
e352f80af33bb9fe08722aa3520074124635b638 (
28
lines) (+
6
/-
22
)
[
Show
|
Annotate
]
Branch:
7.9
F_ASSIGN_GLOBAL_AND_POP no longer uses GLOBAL_FROM_INT().
Rev: src/interpret_functions.h:1.135
2:
|| This file is part of Pike. For copyright information see COPYRIGHT. || Pike is distributed under GPL, LGPL and MPL. See the file COPYING || for more information.
-
|| $Id: interpret_functions.h,v 1.
134
2003/02/15 14:
09
:
44
grubba Exp $
+
|| $Id: interpret_functions.h,v 1.
135
2003/02/15 14:
11
:
48
grubba Exp $
*/ /*
927:
}); OPCODE1(F_ASSIGN_GLOBAL_AND_POP, "assign global and pop", 0, {
-
struct identifier *i;
-
INT32 tmp=arg1 + Pike_fp->context.identifier_level;
-
if(!Pike_fp->current_
object
->prog)
-
Pike
_
error("Cannot access global variables in destructed object.\n");
-
-
i=ID
_
FROM
_
INT
(Pike_fp->current_object
->prog
,
tmp);
-
if(!IDENTIFIER_IS_VARIABLE(i->identifier_flags))
-
Pike_error("Cannot
assign
functions
or
constants.\n");
-
-
if(i->run_time_type
==
PIKE_T_MIXED)
-
{
-
struct
svalue
*s=(struct
svalue
*)GLOBAL_FROM_INT(tmp);
-
free_svalue(s);
-
Pike_
sp
-
-;
-
*s=*Pike_sp;
-
}else{
-
assign_to_short_svalue((union anything *)GLOBAL_FROM_INT(tmp),
-
i-
>
run
_
time_type
,
+
object_
low
_
set
_
index
(Pike_fp->current_object,
+
arg1
+
Pike_
fp
->
context.identifier
_
level
,
Pike_sp-1); pop_stack();
-
}
+
});