pike.git
/
src
/
docode.c
version
»
Context lines:
10
20
40
80
file
none
3
pike.git/src/docode.c:696:
emit1 (F_RANGE, bound_types); } static void emit_global( int n ) { 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(!(id->identifier_flags & IDENTIFIER_NO_THIS_REF)
+
&& !ref->inherit_offset
&& !IDENTIFIER_IS_ALIAS(id->identifier_flags) && IDENTIFIER_IS_VARIABLE(id->identifier_flags)) { /* fprintf( stderr, "private global %d\n", (INT32)id->func.offset ); */ if( ref->id_flags & (ID_PRIVATE|ID_FINAL) ) { if( id->run_time_type == PIKE_T_MIXED ) emit1(F_PRIVATE_GLOBAL, id->func.offset); else emit2(F_PRIVATE_TYPED_GLOBAL, id->func.offset, id->run_time_type); return; }
-
if( (id->func.offset < 65536) && (n<65536) )
-
{
-
+
if( id->run_time_type == PIKE_T_MIXED ) { emit2(F_PRIVATE_IF_DIRECT_GLOBAL, id->func.offset, n); return; }
-
/*
else
*/
-
/*
{ */
+
/*
else
if(
(id->func.offset
<
65536)
&&
(n<65536) )
*/
+
/* { */
/* INT32 mix = id->func.offset | (n<<16); */ /* emit2(F_PRIVATE_IF_DIRECT_TYPED_GLOBAL, mix, id->run_time_type); */
-
+
/* } */
}
-
}
-
+
emit1(F_GLOBAL, n); } 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( !(id->identifier_flags & IDENTIFIER_NO_THIS_REF)
-
+
&& !ref->inherit_offset
&& !IDENTIFIER_IS_ALIAS(id->identifier_flags) && IDENTIFIER_IS_VARIABLE(id->identifier_flags)) { if( (ref->id_flags & (ID_PRIVATE|ID_FINAL)) ) { 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),