pike.git
/
src
/
docode.c
version
»
Context lines:
10
20
40
80
file
none
3
pike.git/src/docode.c:703:
static void emit_assign_global( int n, int and_pop ) { struct compilation *c = THIS_COMPILATION; struct reference *ref = PTR_FROM_INT(Pike_compiler->new_program, n); struct identifier *id = ID_FROM_PTR(Pike_compiler->new_program, ref); if( (ref->id_flags & (ID_PRIVATE|ID_FINAL)) && !(id->identifier_flags & IDENTIFIER_NO_THIS_REF) && !IDENTIFIER_IS_ALIAS(id->identifier_flags) && IDENTIFIER_IS_VARIABLE(id->identifier_flags)
-
&& !ref->inherit_offset
-
&& id->run_time_type == PIKE_T_MIXED
)
+
&& !ref->inherit_offset )
{
-
+
if( id->run_time_type == PIKE_T_MIXED )
emit1((and_pop?F_ASSIGN_PRIVATE_GLOBAL_AND_POP:F_ASSIGN_PRIVATE_GLOBAL), id->func.offset);
-
+
else
+
emit2((and_pop?F_ASSIGN_PRIVATE_TYPED_GLOBAL_AND_POP:F_ASSIGN_PRIVATE_TYPED_GLOBAL),
+
id->func.offset, id->run_time_type);
} else { emit1((and_pop?F_ASSIGN_GLOBAL_AND_POP:F_ASSIGN_GLOBAL), n); } } static void emit_multi_assign(node *vals, node *vars, int no) { struct compilation *c = THIS_COMPILATION;