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]