svn commit: samba r22759 - in branches/SAMBA_3_0/source/lib/talloc: .

metze at samba.org metze at samba.org
Tue May 8 11:12:11 GMT 2007


Author: metze
Date: 2007-05-08 11:12:11 +0000 (Tue, 08 May 2007)
New Revision: 22759

WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=22759

Log:
sync lib/talloc with samba4

metze
Modified:
   branches/SAMBA_3_0/source/lib/talloc/Makefile.in
   branches/SAMBA_3_0/source/lib/talloc/configure.ac
   branches/SAMBA_3_0/source/lib/talloc/libtalloc.m4
   branches/SAMBA_3_0/source/lib/talloc/talloc.3.xml
   branches/SAMBA_3_0/source/lib/talloc/talloc.c
   branches/SAMBA_3_0/source/lib/talloc/talloc.pc.in
   branches/SAMBA_3_0/source/lib/talloc/talloc_guide.txt
   branches/SAMBA_3_0/source/lib/talloc/testsuite.c


Changeset:
Modified: branches/SAMBA_3_0/source/lib/talloc/Makefile.in
===================================================================
--- branches/SAMBA_3_0/source/lib/talloc/Makefile.in	2007-05-08 09:54:01 UTC (rev 22758)
+++ branches/SAMBA_3_0/source/lib/talloc/Makefile.in	2007-05-08 11:12:11 UTC (rev 22759)
@@ -12,12 +12,12 @@
 XSLTPROC = @XSLTPROC@
 INSTALLCMD = @INSTALL@
 CC = @CC@
-CFLAGS = @CFLAGS@ -DHAVE_CONFIG_H= -I. -I at srcdir@ -I at libreplacedir@
+CFLAGS = @CFLAGS@ -DHAVE_CONFIG_H= -I. -I at srcdir@
 EXTRA_TARGETS = @DOC_TARGET@
 
 .SUFFIXES: .c .o .3 .3.xml .xml .html
 
-LIBOBJ = @TALLOCOBJ@ @LIBREPLACEOBJ@
+LIBOBJ = @TALLOC_OBJ@ @LIBREPLACEOBJ@
 
 all: showflags libtalloc.a testsuite $(EXTRA_TARGETS)
 
@@ -34,13 +34,14 @@
 	@-ranlib $@
 
 install: all 
-	${INSTALLCMD} -d ${libdir}
-	${INSTALLCMD} -m 755 libtalloc.a $(libdir)
-	${INSTALLCMD} -d ${includedir}
-	${INSTALLCMD} -m 644 $(srcdir)/talloc.h $(includedir)
-	${INSTALLCMD} -m 644 talloc.pc $(libdir)/pkgconfig
-	if [ -f talloc.3 ];then ${INSTALLCMD} -d ${mandir}/man3; fi
-	if [ -f talloc.3 ];then ${INSTALLCMD} -m 644 talloc.3 $(mandir)/man3; fi
+	${INSTALLCMD} -d $(DESTDIR)$(libdir)
+	${INSTALLCMD} -d $(DESTDIR)$(libdir)/pkgconfig
+	${INSTALLCMD} -m 755 libtalloc.a $(DESTDIR)$(libdir)
+	${INSTALLCMD} -d $(DESTDIR)${includedir}
+	${INSTALLCMD} -m 644 $(srcdir)/talloc.h $(DESTDIR)$(includedir)
+	${INSTALLCMD} -m 644 talloc.pc $(DESTDIR)$(libdir)/pkgconfig
+	if [ -f talloc.3 ];then ${INSTALLCMD} -d $(DESTDIR)$(mandir)/man3; fi
+	if [ -f talloc.3 ];then ${INSTALLCMD} -m 644 talloc.3 $(DESTDIR)$(mandir)/man3; fi
 
 doc: talloc.3 talloc.3.html
 

Modified: branches/SAMBA_3_0/source/lib/talloc/configure.ac
===================================================================
--- branches/SAMBA_3_0/source/lib/talloc/configure.ac	2007-05-08 09:54:01 UTC (rev 22758)
+++ branches/SAMBA_3_0/source/lib/talloc/configure.ac	2007-05-08 11:12:11 UTC (rev 22759)
@@ -1,5 +1,5 @@
 AC_PREREQ(2.50)
-AC_INIT(talloc.h)
+AC_INIT(talloc, 1.0)
 AC_CONFIG_SRCDIR([talloc.c])
 AC_SUBST(datarootdir)
 AC_CONFIG_HEADER(config.h)

Modified: branches/SAMBA_3_0/source/lib/talloc/libtalloc.m4
===================================================================
--- branches/SAMBA_3_0/source/lib/talloc/libtalloc.m4	2007-05-08 09:54:01 UTC (rev 22758)
+++ branches/SAMBA_3_0/source/lib/talloc/libtalloc.m4	2007-05-08 11:12:11 UTC (rev 22759)
@@ -12,9 +12,15 @@
 if test x"$tallocdir" = "x"; then
    AC_MSG_ERROR([cannot find talloc source in $tallocpaths])
 fi
-TALLOCOBJ="talloc.o"
-AC_SUBST(TALLOCOBJ)
+TALLOC_OBJ="talloc.o"
+AC_SUBST(TALLOC_OBJ)
 
+TALLOC_CFLAGS="-I$tallocdir"
+AC_SUBST(TALLOC_CFLAGS)
+
+TALLOC_LIBS=""
+AC_SUBST(TALLOC_LIBS)
+
 AC_CHECK_SIZEOF(size_t,cross)
 AC_CHECK_SIZEOF(void *,cross)
 

Modified: branches/SAMBA_3_0/source/lib/talloc/talloc.3.xml
===================================================================
--- branches/SAMBA_3_0/source/lib/talloc/talloc.3.xml	2007-05-08 09:54:01 UTC (rev 22758)
+++ branches/SAMBA_3_0/source/lib/talloc/talloc.3.xml	2007-05-08 11:12:11 UTC (rev 22759)
@@ -583,11 +583,27 @@
         </para>
         <programlisting>talloc_set_name_const(ptr, ptr)</programlisting>
     </refsect2>
+    <refsect2><title>char *talloc_append_string(const void *<emphasis role="italic">t</emphasis>, char *<emphasis role="italic">orig</emphasis>, const char *<emphasis role="italic">append</emphasis>);</title>
+        <para>
+	  The talloc_append_string() function appends the given formatted
+	  string to the given string.
+        </para>
+        <para>
+	  This function sets the name of the new pointer to the new
+	  string. This is equivalent to:
+        </para>
+        <programlisting>talloc_set_name_const(ptr, ptr)</programlisting>
+    </refsect2>
     <refsect2><title>char *talloc_vasprintf(const void *<emphasis role="italic">t</emphasis>, const char *<emphasis role="italic">fmt</emphasis>, va_list <emphasis role="italic">ap</emphasis>);</title>
         <para>
 	  The talloc_vasprintf() function is the talloc equivalent of the C
 	  library function vasprintf(3).
         </para>
+        <para>
+	  This function sets the name of the new pointer to the new
+	  string. This is equivalent to:
+        </para>
+        <programlisting>talloc_set_name_const(ptr, ptr)</programlisting>
     </refsect2>
     <refsect2><title>char *talloc_asprintf(const void *<emphasis role="italic">t</emphasis>, const char *<emphasis role="italic">fmt</emphasis>, ...);</title>
         <para>
@@ -605,6 +621,11 @@
 	  The talloc_asprintf_append() function appends the given formatted
 	  string to the given string.
         </para>
+        <para>
+	  This function sets the name of the new pointer to the new
+	  string. This is equivalent to:
+        </para>
+        <programlisting>talloc_set_name_const(ptr, ptr)</programlisting>
     </refsect2>
     <refsect2><title>(type *)talloc_array(const void *ctx, type, uint_t count);</title>
         <para>

Modified: branches/SAMBA_3_0/source/lib/talloc/talloc.c
===================================================================
--- branches/SAMBA_3_0/source/lib/talloc/talloc.c	2007-05-08 09:54:01 UTC (rev 22758)
+++ branches/SAMBA_3_0/source/lib/talloc/talloc.c	2007-05-08 11:12:11 UTC (rev 22759)
@@ -1137,6 +1137,8 @@
 	/* append the string with the trailing \0 */
 	memcpy(&ret[olen], append, alenz);
 
+	_talloc_set_name_const(ret, ret);
+
 	return ret;
 }
 

Modified: branches/SAMBA_3_0/source/lib/talloc/talloc.pc.in
===================================================================
--- branches/SAMBA_3_0/source/lib/talloc/talloc.pc.in	2007-05-08 09:54:01 UTC (rev 22758)
+++ branches/SAMBA_3_0/source/lib/talloc/talloc.pc.in	2007-05-08 11:12:11 UTC (rev 22759)
@@ -5,7 +5,7 @@
 
 Name: talloc 
 Description: A hierarchical pool based memory system with destructors
-Version: 4.0
+Version: @PACKAGE_VERSION@
 Libs: -L${libdir} -ltalloc
 Cflags: -I${includedir} 
 URL: http://talloc.samba.org/

Modified: branches/SAMBA_3_0/source/lib/talloc/talloc_guide.txt
===================================================================
--- branches/SAMBA_3_0/source/lib/talloc/talloc_guide.txt	2007-05-08 09:54:01 UTC (rev 22758)
+++ branches/SAMBA_3_0/source/lib/talloc/talloc_guide.txt	2007-05-08 11:12:11 UTC (rev 22759)
@@ -12,7 +12,7 @@
 Samba4 talloc has been ported back to Samba3, so this guide applies to both.
 
 The new talloc is a hierarchical, reference counted memory pool system
-with destructors. Quite a mounthful really, but not too bad once you
+with destructors. Quite a mouthful really, but not too bad once you
 get used to it.
 
 Perhaps the biggest change from Samba3 is that there is no distinction
@@ -533,21 +533,34 @@
 string. This is equivalent to:
    talloc_set_name_const(ptr, ptr)
 
+=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
+char *talloc_append_string(const void *t, char *orig, const char *append);
 
+The talloc_append_string() function appends the given formatted
+string to the given string.
+
+This function sets the name of the new pointer to the new
+string. This is equivalent to:
+   talloc_set_name_const(ptr, ptr)
+
 =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
 char *talloc_vasprintf(const void *t, const char *fmt, va_list ap);
 
 The talloc_vasprintf() function is the talloc equivalent of the C
 library function vasprintf()
 
+This functions sets the name of the new pointer to the new
+string. This is equivalent to:
+   talloc_set_name_const(ptr, ptr)
 
+
 =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
 char *talloc_asprintf(const void *t, const char *fmt, ...);
 
 The talloc_asprintf() function is the talloc equivalent of the C
 library function asprintf()
 
-This functions sets the name of the new pointer to the passed
+This functions sets the name of the new pointer to the new
 string. This is equivalent to:
    talloc_set_name_const(ptr, ptr)
 
@@ -558,7 +571,11 @@
 The talloc_asprintf_append() function appends the given formatted 
 string to the given string. 
 
+This functions sets the name of the new pointer to the new
+string. This is equivalent to:
+   talloc_set_name_const(ptr, ptr)
 
+
 =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
 (type *)talloc_array(const void *ctx, type, uint_t count);
 

Modified: branches/SAMBA_3_0/source/lib/talloc/testsuite.c
===================================================================
--- branches/SAMBA_3_0/source/lib/talloc/testsuite.c	2007-05-08 09:54:01 UTC (rev 22758)
+++ branches/SAMBA_3_0/source/lib/talloc/testsuite.c	2007-05-08 11:12:11 UTC (rev 22759)
@@ -993,7 +993,7 @@
 	s4 = talloc_array_ptrtype(top, s4, 10);location4 = __location__;
 
 	if (talloc_get_size(s4) != (sizeof(struct struct1 **) * 10)) {
-		printf("failure: TALLOC PTRTYPE [\n"
+		printf("failure: ptrtype [\n"
 		      "talloc_array_ptrtype() allocated the wrong size "
 		       "%lu (should be %lu)\n]\n",
 			   (unsigned long)talloc_get_size(s4),
@@ -1010,6 +1010,45 @@
 	return true;
 }
 
+static int _test_talloc_free_in_destructor(void **ptr)
+{
+	talloc_free(*ptr);
+	return 0;
+}
+
+static bool test_talloc_free_in_destructor(void)
+{
+	void *level0;
+	void *level1;
+	void *level2;
+	void *level3;
+	void *level4;
+	void **level5;
+
+	printf("test: free_in_destructor [\nTALLOC FREE IN DESTRUCTOR\n]\n");
+
+	level0 = talloc_new(NULL);
+	level1 = talloc_new(level0);
+	level2 = talloc_new(level1);
+	level3 = talloc_new(level2);
+	level4 = talloc_new(level3);
+	level5 = talloc(level4, void *);
+
+	*level5 = level3;
+	(void)talloc_reference(level0, level3);
+	(void)talloc_reference(level3, level3);
+	(void)talloc_reference(level5, level3);
+
+	talloc_set_destructor(level5, _test_talloc_free_in_destructor);
+
+	talloc_free(level1);
+
+	talloc_free(level0);
+
+	printf("success: free_in_destructor\n");
+	return true;
+}
+
 static bool test_autofree(void)
 {
 #if _SAMBA_BUILD_ < 4
@@ -1055,6 +1094,7 @@
 	ret &= test_loop();
 	ret &= test_free_parent_deny_child(); 
 	ret &= test_talloc_ptrtype();
+	ret &= test_talloc_free_in_destructor();
 
 	if (ret) {
 		ret &= test_speed();



More information about the samba-cvs mailing list