Re: [Gegl-developer] Memory can not be released

What do you mean by "can not be released"? You shouldn't unref node2 and node3 because gegl_node_new_child gives the only reference to the parent node (node1 in this case), but if something is leaking after you free processor, node1 and buffer that would be a bug.

On Thu, Sep 12, 2013 at 12:21 AM, 史龙 <jiewuxiaozi2009 gmail com> wrote:

When I call the following function, my memory will rapidly increase.Can not be released after the call is completed.Please help me diagnose.Thank you very much.

void processXmlData(const char *pXmlData)
    GeglNode    *node1      = NULL;
    GeglNode    *node2      = NULL;
    GeglNode    *node3     = NULL;
    GeglBuffer  *buffer    = NULL;
    double         progress = 0;

    node1 = gegl_node_new_from_xml (pXmlData, NULL);
    node2 = gegl_node_new_child (node1,
                                            "operation", "gegl:convert-format",
                                            "format", "B'aG'aR'aA u8",
    node3 = gegl_node_new_child (node1,
                                            "operation", "gegl:buffer-sink",
                                            "buffer", &buffer,
    gegl_node_link_many (node1, node2, node3, NULL);
    GeglProcessor *processor = gegl_node_new_processor (node3, NULL);
    while (gegl_processor_work (processor, &progress))

    g_object_unref (processor);
    g_object_unref (node2);
    g_object_unref (node3);
    g_object_unref (node1);


gegl-developer-list mailing list
gegl-developer-list gnome org

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