1999-09-16
1999-09-16 05:14:33 by Fredrik Hübinette (Hubbe) <hubbe@hubbe.net>
-
9386f704ce8f61d6f73515b883fde2a611318892
(18 lines)
(+9/-9)
[
Show
| Annotate
]
Branch: 7.9
bugfix?
Rev: src/object.c:1.81
Rev: src/program.c:1.149
5:
\*/
/**/
#include "global.h"
- RCSID("$Id: program.c,v 1.148 1999/09/16 04:45:06 hubbe Exp $");
+ RCSID("$Id: program.c,v 1.149 1999/09/16 05:14:31 hubbe Exp $");
#include "program.h"
#include "object.h"
#include "dynamic_buffer.h"
873: Inside #if defined(PIKE_DEBUG)
if(p->inherits[e].storage_offset < 0)
fatal("Inherit->storage_offset is wrong.\n");
-
+ #if 0 /* nonworking test */
if(e)
{
if(p->inherits[e-1].storage_offset >
886: Inside #if defined(PIKE_DEBUG)
p->inherits[e-1].prog->storage_needed > p->inherits[e].storage_offset)
fatal("Overlapping inherits!\n");
}
+ #endif
}
if(p->flags & PROGRAM_FINISHED)
937: Inside #if defined(PIKE_DEBUG)
int offset = INHERIT_FROM_INT(p, e)->storage_offset+i->func.offset;
size=sizeof_variable(i->run_time_type);
- if(offset+size - p->inherits[0].storage_offset >
- p->storage_needed || offset<0)
+ if(offset+size > p->storage_needed || offset<0)
fatal("Variable outside storage! (%s)\n",i->name->str);
for(q=0;q<size;q++)
1108:
#endif
- new_program->storage_needed = offset + size -
- new_program->inherits[0].storage_offset;
+ new_program->storage_needed = offset + size;
return (SIZE_T) offset;
}
1329:
inherit_offset = new_program->num_inherits;
/* alignment magic */
- storage_offset=(p->inherits[0].storage_offset + OFFSETOF(object,storage)) %
- p->alignment_needed;
- storage_offset=low_add_storage(p->storage_needed,
+ storage_offset=p->inherits[0].storage_offset % p->alignment_needed;
+ storage_offset=low_add_storage(p->storage_needed-
+ p->inherits[0].storage_offset,
p->alignment_needed,
storage_offset);