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

Re: [PATCH] Porting filmgimp-0.1-1.0.4 to GNU/Hurd



Le dim 25/08/2002 à 11:43, Marcus Brinkmann a écrit :
> In the way the code seems to be written, you MUST make this static and
> do an "if (!filename) {...} return filename;" where ... contains most of the
> code.
> You are leaking memory at each invocation here.  Alternatively, all callers
> of gimp_gtkrc() can free() the returned pointer.

First choice taken: smaller patch, and cleaner behavior.

Snark

PS: Here is the new patch:
diff -ur filmgimp-0.1-1.0.4-orig/libgimp/gimp.c
filmgimp-0.1-1.0.4-hurd/libgimp/gimp.c
--- filmgimp-0.1-1.0.4-orig/libgimp/gimp.c      Wed Sep  6 08:22:34 2000
+++ filmgimp-0.1-1.0.4-hurd/libgimp/gimp.c      Sun Aug 25 12:26:12 2002
@@ -802,14 +802,21 @@
 gchar*
 gimp_gtkrc ()
 {
-  static char filename[MAXPATHLEN];
+  static char *filename=NULL;
   char *home_dir;
 
-  home_dir = getenv ("HOME");
-  if (!home_dir)
-    return NULL;
+  if(!filename)
+  {
+    home_dir = getenv ("HOME");
+    if (!home_dir)
+      return NULL;
 
-  sprintf (filename, "%s/%s/gtkrc", home_dir, GIMPDIR);
+    filename = malloc(strlen(home_dir) + strlen(GIMPDIR) +8);
+    if(!filename)
+      return NULL;
+
+    sprintf (filename, "%s/%s/gtkrc", home_dir, GIMPDIR);
+  }
 
   return filename;
 }




Reply to: