Author: gozer
Date: Fri Feb  3 16:13:23 2006
New Revision: 374792

URL: http://svn.apache.org/viewcvs?rev=374792&view=rev
Log:
apr_table_(copy|overlay) has hierarchical requirements on the pool
being used, since it copies content from table to table without
reallocing it.

The test logic was broken and would produce these kind of aborts
when apr was compiled with -DAPR_POOL_DEBUG:

  apr_table_copy: t's pool is not an ancestor of p
  apr_table_overlay: overlay's pool is not an ancestor of p
  apr_table_overlay: base's pool is not an ancestor of p

This reworks the test logic a bit to keep on testing what it was
testing, while passing correct pools to the various table methods


Modified:
    perl/modperl/trunk/t/lib/TestAPRlib/table.pm

Modified: perl/modperl/trunk/t/lib/TestAPRlib/table.pm
URL: 
http://svn.apache.org/viewcvs/perl/modperl/trunk/t/lib/TestAPRlib/table.pm?rev=374792&r1=374791&r2=374792&view=diff
==============================================================================
--- perl/modperl/trunk/t/lib/TestAPRlib/table.pm (original)
+++ perl/modperl/trunk/t/lib/TestAPRlib/table.pm Fri Feb  3 16:13:23 2006
@@ -307,11 +307,16 @@
     # - copy
     # - overlay
     {
-        my $table = APR::Table::make(APR::Pool->new, 10);
-        $table->set($_ => $_) for 1..20;
-        ok t_cmp $table->get(20), 20, "no segfault";
+        {
+            my $table = APR::Table::make(APR::Pool->new, 10);
+            $table->set($_ => $_) for 1..20;
+            ok t_cmp $table->get(20), 20, "no segfault";
+        }
 
-        my $table_copy = $table->copy(APR::Pool->new);
+        my $pool = APR::Pool->new;
+        my $table = APR::Table::make($pool, 10);
+        $table->set($_ => $_) for 1..20;
+        my $table_copy = $table->copy($pool->new);
         {
             # verify that the temp pool used to create $table_copy was
             # not freed, by allocating a new table to fill with a
@@ -325,9 +330,12 @@
         }
         ok t_cmp $table_copy->get(20), 20, "no segfault/valid data";
 
-        my $table2 = APR::Table::make(APR::Pool->new, 1);
+        my $table2 = APR::Table::make($pool, 1);
         $table2->set($_**2 => $_**2) for 1..20;
-        my $overlay = $table_copy->overlay($table2, APR::Pool->new);
+        my $table2_copy = APR::Table::make($pool, 1);
+        $table2_copy->set($_ => $_) for 1..20;
+        
+        my $overlay = $table2_copy->overlay($table2, $pool->new);
         {
             # see the comment for above's:
             # $table_copy = $table->copy(APR::Pool->new);


Reply via email to