pike.git/
src/
program.c
Branch:
Tag:
Non-build tags
All tags
No tags
2001-05-02
2001-05-02 14:09:48 by Henrik Grubbström (Grubba) <grubba@grubba.org>
21fdacc3245fca7844a90cab0eb4f7107dfe8e96 (
26
lines) (+
15
/-
11
)
[
Show
|
Annotate
]
Branch:
7.9
Bugfix in destruction of placeholder object.
Rev: src/program.c:1.317
5:
\*/ /**/ #include "global.h"
-
RCSID("$Id: program.c,v 1.
316
2001/
04
/
28
19
:
32
:
55
mast
Exp $");
+
RCSID("$Id: program.c,v 1.
317
2001/
05
/
02
14
:
09
:
48
grubba
Exp $");
#include "program.h" #include "object.h" #include "dynamic_buffer.h"
1962:
/* Move all inherits to make room */ available = Pike_compiler->new_program->inherits[0].storage_offset;
-
if(available < offset+size)
+
if(available <
(ptrdiff_t)(
offset+size)
)
{ available= DO_ALIGN( ((offset + size) - available),
4003:
if(placeholder) {
-
if(!p)
+
if(!p
|| (placeholder->storage
)
)
{
-
destruct
(
placeholder);
-
placeholder
=0
;
-
}
-
else
if(placeholder->storage)
-
{
+
/* fprintf
(
stderr, "Destructing
placeholder
.\n"
);
*/
+
if
(placeholder->storage) {
yyerror("Placeholder already has storage!\n");
-
+
/* fprintf(stderr, "Placeholder already has storage!\n"
+
"placeholder: %p, storage: %p, prog: %p, p: %p\n",
+
placeholder, placeholder->storage, placeholder->prog, p); */
destruct(placeholder);
-
+
} else {
+
placeholder->prog = NULL;
+
}
placeholder=0;
-
}else{
+
} else {
placeholder->storage=p->storage_needed ? (char *)xalloc(p->storage_needed) : (char *)0;