2001-10-06
2001-10-06 12:04:23 by Fredrik Hübinette (Hubbe) <hubbe@hubbe.net>
-
ae2d70a9e97129bd76aeaea0b6cac9a3aeac164f
(20 lines)
(+12/-8)
[
Show
| Annotate
]
Branch: 7.9
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;
}
}