]> gitweb.michael.orlitzky.com - libsvgtiny-pixbuf.git/commitdiff
io-svg.c: simplify memory management for context->svg_data
authorMichael Orlitzky <michael@orlitzky.com>
Sun, 6 Aug 2023 06:05:38 +0000 (02:05 -0400)
committerMichael Orlitzky <michael@orlitzky.com>
Sun, 6 Aug 2023 06:05:38 +0000 (02:05 -0400)
Match up the malloc/free for this buffer rather than freeing it as
soon as possible in some helper function three levels down.

io-svg.c

index 8bea9ef7ed04a9c2591094059abd686cff8916bb..543162f6c0b21f8357679f3e03ce76f408e91da9 100644 (file)
--- a/io-svg.c
+++ b/io-svg.c
@@ -131,7 +131,6 @@ static diagram_t* svgtiny_diagram_from_buffer(char* buffer,
   }
 
   code = svgtiny_parse(diagram, buffer, bytecount, "", width, height);
-  free(buffer);
 
   if (code != svgtiny_OK) {
     switch (code) {
@@ -340,8 +339,7 @@ static gpointer gdk_pixbuf_begin_load(GdkPixbufModuleSizeFunc size_func,
   context->updated_func   = updated_func;
   context->user_data      = user_data;
 
-  /* YOLO, no error checking */
-  context->svg_data       = g_malloc(0);
+  context->svg_data       = NULL;
   context->svg_data_size  = 0;
 
   return context;
@@ -400,6 +398,7 @@ static gboolean gdk_pixbuf_stop_load(gpointer data, GError **error) {
     g_propagate_error(error, sub_error);
     result = FALSE;
   }
+  g_free(context->svg_data);
   g_free(context);
 
   return result;