Branch: Tag:

2001-04-14

2001-04-14 09:44:22 by Fredrik Hübinette (Hubbe) <hubbe@hubbe.net>

Jumbopatch:

Saved 8 bytes per object (for objects that do not use their parent scope),
fixed some memory leaks and
first implementation of constant objects (Gmp.Bignum, Math.Matrix and Image.Colour)

Rev: src/backend.cmod:1.14
Rev: src/builtin.cmod:1.27
Rev: src/builtin_functions.c:1.362
Rev: src/docode.c:1.111
Rev: src/encode.c:1.98
Rev: src/gc.c:1.149
Rev: src/interpret.c:1.191
Rev: src/las.c:1.251
Rev: src/main.c:1.123
Rev: src/modules/Gmp/mpz_glue.c:1.93
Rev: src/modules/Image/colors.c:1.49
Rev: src/modules/Math/math_matrix.c:1.22
Rev: src/modules/Oracle/oracle.c:1.56
Rev: src/modules/files/socket.c:1.54
Rev: src/object.c:1.169
Rev: src/object.h:1.62
Rev: src/program.c:1.314
Rev: src/program.h:1.125
Rev: src/threads.h:1.114
Rev: src/version.h:1.273

5:   \*/   /**/   #include "global.h" - RCSID("$Id: interpret.c,v 1.190 2001/03/17 16:32:14 grubba Exp $"); + RCSID("$Id: interpret.c,v 1.191 2001/04/14 09:44:20 hubbe Exp $");   #include "interpret.h"   #include "object.h"   #include "program.h"
474:    TRACE((4,"- i->parent_offset=%d i->parent_identifier=%d\n",    loc->inherit->parent_offset,    loc->inherit->parent_identifier)); +     TRACE((4,"- o->parent_identifier=%d inherit->identifier_level=%d\n", -  loc->o->parent_identifier, +  loc->o->prog->flags & PROGRAM_USES_PARENT ? +  PARENT_INFO(loc->o)->parent_identifier : -1,    loc->inherit->identifier_level));       switch(loc->inherit->parent_offset)
511:       case -18:    TRACE((5,"- Following o->parent\n")); -  loc->parent_identifier=loc->o->parent_identifier; -  loc->o=loc->o->parent; +  if(loc->o->prog && (loc->o->prog->flags & PROGRAM_USES_PARENT)) +  { +  loc->parent_identifier=PARENT_INFO(loc->o)->parent_identifier; +  loc->o=PARENT_INFO(loc->o)->parent; +  }else{ +  loc->o=0; +  loc->parent_identifier=-1; +  }    break;    }