[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]

Re: Memory leak in g_string_sized_new()?



Ronald Roth wrote:

> #include <glib.h>
> #include <stdio.h>
> 
> int main() {
>         GString *temp;
>         int size=5;
> 
>         temp=g_string_new(NULL);
>         printf("About to allocate string\n");
>         getchar();
>         temp=g_string_sized_new(size);
>         getchar();
>         printf("temp size: %i alloc:%i\n", temp->len, temp->allocated_len);
>         printf("About to free string.\n");
>         getchar();
>         g_string_free(temp, TRUE);
>         return 0;
> }

The first GString you create, with g_string_new(NULL) is never free'd. 
This code shouldn't (but I havn't tested it) leak:

#include <glib.h>
#include <stdio.h>

int main() {
         GString *temp1,*temp2;
         int size=5;

         temp1=g_string_new(NULL);
         printf("About to allocate string\n");
         getchar();
         temp2=g_string_sized_new(size);
         getchar();
         printf("temp size: %i alloc:%i\n", temp2->len, 
temp2->allocated_len);
         printf("About to free string.\n");
         getchar();
         g_string_free(temp1, TRUE);
	g_string_free(temp2,TRUE);
         return 0;
}

Hope this helps

-- 
-charlie




[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]