Boost logo

Boost :

Subject: Re: [boost] request for interest in a garbage collection library
From: Kasra (kasra_n500_at_[hidden])
Date: 2009-04-14 06:36:22

>> 3) gc pointers can point to middle of objects and arrays.

>I don't really understand how this works. Would the middle of an
>object/array get collected separately from the rest of it? That seems
>ridiculous, so I'm confused.


I think the following if what was ment:

base of array 'x'
[ 0 ][ 1 ][ 2 ][ 3 ][ 4 ] // an array of 5 elements
                 pointer to 4-th element (ptr)

{c++} gc_free(ptr);

remove the entier object 'x' from memory so you don't have to
make sure you have a base pointer to 'x' to delete 'x'.

This comes handly for example when:

  char* x = (char*)gc_malloc(5);
  char* end = x + 5;
  set_zero(x, 5);

  while(x != end && *x != 0) {
    // error, x should have been al zero
    gc_free(x); // note x doesn't point to base
    // of the allocated memory anymore!


With Best Regards

-- Kasra


Boost list run by bdawes at, gregod at, cpdaniel at, john at