Branch: Tag:

2001-06-05

2001-06-05 00:03:57 by Martin Stjernholm <mast@lysator.liu.se>

Use separate weak flags for indices and values.

Rev: lib/modules/Pike.pmod:1.1
Rev: src/builtin.cmod:1.30
Rev: src/builtin_functions.h:1.17
Rev: src/testsuite.in:1.420

1: - test_true([["$Id: testsuite.in,v 1.419 2001/05/31 22:16:37 grubba Exp $"]]); + test_true([["$Id: testsuite.in,v 1.420 2001/06/05 00:03:57 mast Exp $"]]);      cond([[all_constants()->_verify_internals]],   [[
2519:    ]])    test_true([[    object o = class{}(); +  mapping m = ([class{}(): o, o: class{}()]); +  set_weak_flag (m, Pike.WEAK_INDICES); +  gc(); +  return sizeof (m); +  ]]) +  test_true([[ +  object o = class{}(); +  mapping m = ([class{}(): o, o: class{}()]); +  set_weak_flag (m, Pike.WEAK_VALUES); +  gc(); +  return sizeof (m); +  ]]) +  test_true([[ +  object o = class{}();    multiset m = (<o>);    set_weak_flag (m, 1);    m[class{}()] = 1;
3663:    o=o2=0;    gc();    ]]) +  +  test_any([[ +  object o = class{}(); +  mapping m = set_weak_flag (([o: "x"]), Pike.WEAK_INDICES); +  gc(); +  return sizeof (m); +  ]], 1) +  test_any([[ +  object o = class{}(); +  mapping m = set_weak_flag (([o: "x"]), Pike.WEAK_VALUES); +  gc(); +  return sizeof (m); +  ]], 1) +  test_any([[ +  object o = class{}(); +  mapping m = set_weak_flag ((["x": o]), Pike.WEAK_INDICES); +  gc(); +  return sizeof (m); +  ]], 1) +  test_any([[ +  object o = class{}(); +  mapping m = set_weak_flag ((["x": o]), Pike.WEAK_VALUES); +  gc(); +  return sizeof (m); +  ]], 1) +  test_any([[ +  mapping m = set_weak_flag (([class{}(): "x"]), Pike.WEAK_INDICES); +  gc(); +  return sizeof (m); +  ]], 0) +  test_any([[ +  mapping m = set_weak_flag (([class{}(): "x"]), Pike.WEAK_VALUES); +  gc(); +  return sizeof (m); +  ]], 1) +  test_any([[ +  mapping m = set_weak_flag ((["x": class{}()]), Pike.WEAK_INDICES); +  gc(); +  return sizeof (m); +  ]], 1) +  test_any([[ +  mapping m = set_weak_flag ((["x": class{}()]), Pike.WEAK_VALUES); +  gc(); +  return sizeof (m); +  ]], 0) +  test_any([[ +  object o = class{}(); +  mapping m = set_weak_flag (([o: o]), Pike.WEAK_INDICES); +  o = 0; +  gc(); +  return sizeof (m); +  ]], 1) +  test_any([[ +  object o = class{}(); +  mapping m = set_weak_flag (([o: o]), Pike.WEAK_VALUES); +  o = 0; +  gc(); +  return sizeof (m); +  ]], 1) +  test_any([[ +  object o = class{}(); +  mapping m = set_weak_flag (([o: o]), Pike.WEAK); +  o = 0; +  gc(); +  return sizeof (m); +  ]], 0) +  test_any([[ +  object o = class{}(); +  mapping m = set_weak_flag (([o: "x"]), Pike.WEAK_INDICES); +  destruct (o); +  gc(); +  return sizeof (m); +  ]], 0) +  test_any([[ +  object o = class{}(); +  mapping m = set_weak_flag (([o: "x"]), Pike.WEAK_VALUES); +  destruct (o); +  gc(); +  return sizeof (m); +  ]], 0) +  test_any([[ +  object o = class{}(); +  mapping m = ([o: "x"]); +  destruct (o); +  gc(); +  return sizeof (m); +  ]], 0) +  test_any([[ +  object o = class{}(); +  mapping m = set_weak_flag ((["x": o]), Pike.WEAK_INDICES); +  destruct (o); +  gc(); +  return sizeof (m); +  ]], 1) +  test_any([[ +  object o = class{}(); +  mapping m = set_weak_flag ((["x": o]), Pike.WEAK_VALUES); +  destruct (o); +  gc(); +  return sizeof (m); +  ]], 0) +  test_any([[ +  object o = class{}(); +  mapping m = (["x": o]); +  destruct (o); +  gc(); +  return sizeof (m); +  ]], 1)   ]])      cond([[ sizeof( cpp("__AUTO_BIGNUM__")/"__AUTO_BIGNUM__" ) == 1 ]],