Branch: Tag:

2006-02-25

2006-02-25 03:59:41 by Martin Stjernholm <mast@lysator.liu.se>

Dmalloc fix in gc_move_marker - the old block might already be freed.

Rev: src/gc.c:1.259

2:   || This file is part of Pike. For copyright information see COPYRIGHT.   || Pike is distributed under GPL, LGPL and MPL. See the file COPYING   || for more information. - || $Id: gc.c,v 1.258 2006/02/18 05:08:24 mast Exp $ + || $Id: gc.c,v 1.259 2006/02/25 03:59:41 mast Exp $   */      #include "global.h"
33:      #include "block_alloc.h"    - RCSID("$Id: gc.c,v 1.258 2006/02/18 05:08:24 mast Exp $"); + RCSID("$Id: gc.c,v 1.259 2006/02/25 03:59:41 mast Exp $");      int gc_enabled = 1;   
1979:      void gc_move_marker (void *old, void *new)   { -  struct marker *m = get_marker (debug_malloc_pass (old)); +  struct marker *m = get_marker (old);      #ifdef PIKE_DEBUG    if (!old) Pike_fatal("Got null pointer in old.\n");
1991:    Pike_fatal ("gc move mark attempted in invalid pass.\n");   #endif    -  move_marker (m, new); +  move_marker (m, debug_malloc_pass (new));   }      PMOD_EXPORT void gc_cycle_enqueue(gc_cycle_check_cb *checkfn, void *data, int weak)