pike.git
/
src
/
docode.c
version
»
Context lines:
10
20
40
80
file
none
3
pike.git/src/docode.c:1:
/* || 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: docode.c,v 1.
154
2002/11/14 12:
36
:
42
grubba Exp $
+
|| $Id: docode.c,v 1.
155
2002/11/14 12:
45
:
44
grubba Exp $
*/ #include "global.h"
-
RCSID("$Id: docode.c,v 1.
154
2002/11/14 12:
36
:
42
grubba Exp $");
+
RCSID("$Id: docode.c,v 1.
155
2002/11/14 12:
45
:
44
grubba Exp $");
#include "las.h" #include "program.h" #include "pike_types.h" #include "stralloc.h" #include "interpret.h" #include "constants.h" #include "array.h" #include "pike_macros.h" #include "pike_error.h" #include "pike_memory.h"
pike.git/src/docode.c:451:
Inside #if 1
int n=count_args(args); if(n == Pike_compiler->compiler_frame->num_args) { do_docode(args,0); if(Pike_compiler->compiler_frame->is_inline || (ref->id_flags & ID_INLINE)) { /* Identifier is declared inline/local * or in inlining pass. */
+
if ((ref->id_flags & ID_INLINE) &&
+
(!Pike_compiler->compiler_frame->is_inline)) {
+
/* Explicit local:: reference in first pass.
+
*
+
* RECUR directly to label 0.
+
*
+
* (We don't want to trigger the second pass if it's not needed.)
+
*/
+
do_jump(F_RECUR, 0);
+
} else {
Pike_compiler->compiler_frame-> recur_label=do_jump(F_RECUR, Pike_compiler->compiler_frame->recur_label);
-
+
}
} else { /* Recur if not overloaded. */ emit1(F_COND_RECUR,id); Pike_compiler->compiler_frame-> recur_label=do_jump(F_POINTER, Pike_compiler->compiler_frame->recur_label); } return 1; } }
pike.git/src/docode.c:2205:
init_bytecode(); label_no=1; #ifdef ALIGN_PIKE_FUNCTION_BEGINNINGS while( ( (((INT32) PIKE_PC)+2) & (ALIGN_PIKE_JUMPS-1))) ins_byte(0); #endif ret=PIKE_PC; /* NOTE: This is no ordinary label... */
-
Pike_compiler->compiler_frame->recur_label=0;
+
low_insert_label(0); emit1(F_BYTE,Pike_compiler->compiler_frame->max_number_of_locals); emit1(F_BYTE,Pike_compiler->compiler_frame->num_args); emit0(F_ENTRY); emit0(F_START_FUNCTION); if(Pike_compiler->compiler_frame->current_function_number >= 0 && (Pike_compiler->new_program->identifier_references[ Pike_compiler->compiler_frame->current_function_number].id_flags & ID_INLINE)) {
-
+
Pike_compiler->compiler_frame->recur_label=0;
Pike_compiler->compiler_frame->is_inline=1; } DO_CODE_BLOCK(n); if(Pike_compiler->compiler_frame->recur_label > 0) { #ifdef PIKE_DEBUG if(l_flag) {