Branch: Tag:

2001-10-06

2001-10-06 12:04:23 by Fredrik Hübinette (Hubbe) <hubbe@hubbe.net>

fixed some refcount bug(s)

Rev: src/program.c:1.382

5:   \*/   /**/   #include "global.h" - RCSID("$Id: program.c,v 1.381 2001/10/05 01:30:14 hubbe Exp $"); + RCSID("$Id: program.c,v 1.382 2001/10/06 12:04:23 hubbe Exp $");   #include "program.h"   #include "object.h"   #include "dynamic_buffer.h"
4092:   {   /* if(!store_linenumbers) fatal("Fnord.\n"); */   #ifdef PIKE_DEBUG -  if(d_flag) +  if(a_flag)    {    INT32 line=0, off=0;    size_t len = 0;
4100: Inside #if defined(PIKE_DEBUG)
   char *file=0;    char *cnt=Pike_compiler->new_program->linenumbers;    -  if (d_flag > 50) { +  if (a_flag > 50) {    fprintf(stderr, "store_line_number(%d, \"%s\")\n",    current_line, current_file->str);    fprintf(stderr, " last_line:%d last_file:\"%s\"\n",
4119: Inside #if defined(PIKE_DEBUG)
   shift = *cnt;    file = ++cnt;    cnt += len<<shift; -  if (d_flag > 10) { +  if (a_flag > 10) {    fprintf(stderr, "Filename entry:\n"    " len: %d, shift: %d\n",    len, shift);
4127: Inside #if defined(PIKE_DEBUG)
   }    off+=get_small_number(&cnt);    line+=get_small_number(&cnt); -  if (d_flag > 100) { +  if (a_flag > 100) {    fprintf(stderr, " off: %d, line: %d\n"    " raw: ",    off, line);
4725:    * a previous compile() actually failed, even    * if we did not know it at the time    */ -  push_program(c->target); +  ref_push_program(c->target);    SAFE_APPLY_MASTER("unregister",1); -  +  pop_stack();    }    }    else
4819: Inside #if defined(PIKE_DEBUG)
   if(cc->dependants)    fatal("Que???\n");   #endif -  +  if(cc->p) free_program(cc->p); /* later */    free_compilation(cc);    }   
4831:    if(delay)    {    /* finish later */ -  return c->p; +  add_ref(c->p); +  return c->p; /* freed later */    }else{    /* finish now */    if(c->p) run_pass2(c);
4845:    if(!ret)    throw_error_object(low_clone(compilation_error_program), 0, 0, 0,    "Compilation failed.\n"); +  debug_malloc_touch(ret);    return ret;    }   }