You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@trafficserver.apache.org by mt...@apache.org on 2010/05/14 18:06:21 UTC

svn commit: r944328 - in /trafficserver/traffic/trunk/iocore/utils: I_Layout.h Layout.cc

Author: mturk
Date: Fri May 14 16:06:21 2010
New Revision: 944328

URL: http://svn.apache.org/viewvc?rev=944328&view=rev
Log:
Make sure all members are freed

Modified:
    trafficserver/traffic/trunk/iocore/utils/I_Layout.h
    trafficserver/traffic/trunk/iocore/utils/Layout.cc

Modified: trafficserver/traffic/trunk/iocore/utils/I_Layout.h
URL: http://svn.apache.org/viewvc/trafficserver/traffic/trunk/iocore/utils/I_Layout.h?rev=944328&r1=944327&r2=944328&view=diff
==============================================================================
--- trafficserver/traffic/trunk/iocore/utils/I_Layout.h (original)
+++ trafficserver/traffic/trunk/iocore/utils/I_Layout.h Fri May 14 16:06:21 2010
@@ -61,6 +61,14 @@ struct Layout
 
   */
   char *relative(const char *file);
+
+  /**
+   Return file path relative to dir
+   Memory is allocated, so use free() when no longer needed
+   Example usage: Layout::relative_to(default_layout()->sysconfdir, "foo.bar");
+
+  */
+  static char *relative_to(const char *dir, const char *file);
 };
 
 /**

Modified: trafficserver/traffic/trunk/iocore/utils/Layout.cc
URL: http://svn.apache.org/viewvc/trafficserver/traffic/trunk/iocore/utils/Layout.cc?rev=944328&r1=944327&r2=944328&view=diff
==============================================================================
--- trafficserver/traffic/trunk/iocore/utils/Layout.cc (original)
+++ trafficserver/traffic/trunk/iocore/utils/Layout.cc Fri May 14 16:06:21 2010
@@ -72,6 +72,12 @@ Layout::relative(const char *file)
   return layout_relative(prefix, file);
 }
 
+char *
+Layout::relative_to(const char *dir, const char *file)
+{
+  return layout_relative(dir, file);
+}
+
 Layout::Layout(const char *_prefix)
 {
   if (_prefix) {
@@ -165,6 +171,21 @@ Layout::Layout(const char *_prefix)
 
 Layout::~Layout()
 {
-  if (prefix)
-    xfree(prefix);
+#define SafeFree(x) \
+  if (x) xfree(x);
+
+  SafeFree(prefix);
+  SafeFree(exec_prefix);
+  SafeFree(bindir);
+  SafeFree(sbindir);
+  SafeFree(sysconfdir);
+  SafeFree(datadir);
+  SafeFree(includedir);
+  SafeFree(libdir);
+  SafeFree(libexecdir);
+  SafeFree(localstatedir);
+  SafeFree(sharedstatedir);
+  SafeFree(mandir);
+  SafeFree(infodir);
 }
+