pike.git / src / interpret_functions.h

version» Context lines:

pike.git/src/interpret_functions.h:2925:    PIKE_OPCODE_T *addr;    INT32 args = (INT32)(Pike_sp - *--Pike_mark_sp);       FAST_CHECK_THREADS_ON_CALL();       JUMP_SET_TO_PC_AT_NEXT (addr);    addr += GET_JUMP();    addr += ENTRY_PROLOGUE_SIZE;    SET_PROG_COUNTER(addr);    +  /* FIXME: What about MALLOCED_LOCALS? */    if(Pike_sp-args != Pike_fp->locals)    {    DO_IF_DEBUG({    if (Pike_sp < Pike_fp->locals + args)    Pike_fatal("Pike_sp (%p) < Pike_fp->locals (%p) + args (%d)\n",    Pike_sp, Pike_fp->locals, args);    });    assign_svalues(Pike_fp->locals, Pike_sp-args, args, BIT_MIXED);    pop_n_elems(Pike_sp - (Pike_fp->locals + args));    }
pike.git/src/interpret_functions.h:3063:    size_t num_ints = (Pike_fp->num_locals >> 4) + 1;    size_t num_bytes = num_ints * sizeof(unsigned INT16);    Pike_fp->save_locals_bitmask = (unsigned INT16*)xalloc(num_bytes);    memset(Pike_fp->save_locals_bitmask, 0, num_bytes);    Pike_fp->flags |= PIKE_FRAME_SAVE_LOCALS;    }    *(Pike_fp->save_locals_bitmask + (ptrdiff_t)offset) = mask;    });      OPCODE2(F_FILL_STACK, "fill_stack", I_UPDATE_SP, { +  if (!(Pike_fp->flags & PIKE_FRAME_MALLOCED_LOCALS)) {    INT32 tmp = (Pike_fp->locals + arg1) - Pike_sp;    if (tmp > 0) {    if (arg2) {    push_undefines(tmp);    } else {    push_zeroes(tmp);    }    } -  +  }    });      OPCODE1(F_MARK_AT, "mark_at", I_UPDATE_SP, { -  +  /* FIXME: What about MALLOCED_LOCALS? */    *(Pike_mark_sp++) = Pike_fp->locals + arg1;    });      OPCODE2(F_MAGIC_ANNOTATIONS, "::_annotations", I_UPDATE_SP, {    push_magic_index(magic_annotations_program, arg2, arg1);   });      /*   #undef PROG_COUNTER   */