I am attempting to create a g_ptr_array_new_with_free_func. It appears
that the memory is not being free after calling 
g_ptr_array_free(myAry, TRUE);

Shouldn't it release the memory for all the elements?


GLib Memory statistics (successful operations):
 blocks of | allocated  | freed      | allocated  | freed      | n_bytes   
  n_bytes  | n_times by | n_times by | n_times by | n_times by | remaining 
           | malloc()   | free()     | realloc()  | realloc()  |           
===========|============|============|============|============|===========
        64 |          0 |          1 |          1 |          0 |         +0
       508 |          3 |          0 |          0 |          0 |      +1524
      2040 |          1 |          0 |          0 |          0 |      +2040
      2500 |          1 |          0 |          0 |          0 |      +2500
GLib Memory statistics (failing operations):
 --- none ---
Total bytes: allocated=6128, zero-initialized=6064 (98.96%), freed=64 (1.04%), 
remaining=6064


#include <glib.h>
#include "types.h"
#include "rand.h"
#include "print.h"

void mydestroy(gpointer myInd) {
  g_slice_free1(sizeof(individual), myInd);
  //g_free(myInd);
}

int main() {
  GPtrArray *myAry;
  GRand *myRand;
  individual *theInd;
  guint i;

  g_mem_set_vtable(glib_mem_profiler_table);
  g_atexit(g_mem_profile);

  myAry = g_ptr_array_new_with_free_func(mydestroy);

  // Initialize the random number generator
  myRand = g_rand_new();

  // Add some individuals to the array.
  for (i=0; i<5;i++) {
    makeRandIndV1(myRand, &theInd);
    g_ptr_array_add(myAry, theInd); 
  }

  // print them out
  for (i=0; i<5;i++) {
    theInd = g_ptr_array_index(myAry, i);
    print_individual(theInd );
  }

  // free the array.
  g_ptr_array_free(myAry, TRUE);

  

  return 0;
}

-- 
Brian Lavender
http://www.brie.com/brian/

"There are two ways of constructing a software design. One way is to
make it so simple that there are obviously no deficiencies. And the other
way is to make it so complicated that there are no obvious deficiencies."

Professor C. A. R. Hoare
The 1980 Turing award lecture
_______________________________________________
gtk-app-devel-list mailing list
gtk-app-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/gtk-app-devel-list

Reply via email to