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);
}
+