joes 2003/04/19 09:21:31
Modified: src apreq_tables.c
t testall.c
Added: t test_apreq.h
Removed: t test_apr.h
Log:
Simplifed tree-combining code in apreq_tables.c; s/APR/APREQ/i in a few test
files.
Revision Changes Path
1.13 +20 -17 httpd-apreq-2/src/apreq_tables.c
Index: apreq_tables.c
===================================================================
RCS file: /home/cvs/httpd-apreq-2/src/apreq_tables.c,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -r1.12 -r1.13
--- apreq_tables.c 19 Apr 2003 09:42:08 -0000 1.12
+++ apreq_tables.c 19 Apr 2003 16:21:31 -0000 1.13
@@ -427,43 +427,46 @@
apreq_table_entry_t *o, int a,
int b, const int n)
{
- int left = b[o+n].tree[LEFT];
- int right = b[o+n].tree[RIGHT];
- int next;
+ int left, right, next;
if (b < 0)
return a;
- for( next = b+n; next[o].tree[NEXT] >= 0; next = next[o].tree[NEXT])
+ b += n;
+
+ left = b[o].tree[LEFT];
+ right = b[o].tree[RIGHT];
+
+ for(next = b; next[o].tree[NEXT] >= 0; next = next[o].tree[NEXT])
next[o].tree[NEXT] += n;
if (a >= 0) {
int rv = a;
int parent = a[o].tree[PARENT];
if (parent >= 0) {
- parent[o].tree[LR(a)] = b+n;
+ parent[o].tree[LR(a)] = b;
a[o].tree[PARENT] = -1;
}
- if (insert(cmp,o,&a,a,b+o+n, TREE_PUSH) < 0)
- rv = b + n;
+ if (insert(cmp,o,&a,a,b+o, TREE_PUSH) < 0)
+ rv = b;
- if (b[o+n].tree[PARENT] >= 0)
- PROMOTE(o,&a,b+n);
+ if (b[o].tree[PARENT] >= 0)
+ PROMOTE(o,&a,b);
- b[o+n].tree[PARENT] = parent;
- b[o+n].tree[LEFT] = combine(cmp, o, b[o+n].tree[LEFT], left, n);
- b[o+n].tree[RIGHT] = combine(cmp, o, b[o+n].tree[RIGHT], right, n);
+ b[o].tree[PARENT] = parent;
+ b[o].tree[LEFT] = combine(cmp, o, b[o].tree[LEFT], left, n);
+ b[o].tree[RIGHT] = combine(cmp, o, b[o].tree[RIGHT], right, n);
return rv;
}
else {
- if (b[o+n].tree[PARENT] >= 0)
- b[o+n].tree[PARENT] += n;
- b[o+n].tree[LEFT] = combine(cmp, o, -1, left, n);
- b[o+n].tree[RIGHT] = combine(cmp, o, -1, right, n);
+ if (b[o].tree[PARENT] >= 0)
+ b[o].tree[PARENT] += n;
+ b[o].tree[LEFT] = combine(cmp, o, -1, left, n);
+ b[o].tree[RIGHT] = combine(cmp, o, -1, right, n);
- return b + n;
+ return b;
}
}
1.3 +1 -1 httpd-apreq-2/t/testall.c
Index: testall.c
===================================================================
RCS file: /home/cvs/httpd-apreq-2/t/testall.c,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- testall.c 19 Apr 2003 16:06:03 -0000 1.2
+++ testall.c 19 Apr 2003 16:21:31 -0000 1.3
@@ -55,7 +55,7 @@
#include <stdio.h>
#include <stdlib.h>
-#include "test_apr.h"
+#include "test_apreq.h"
/* Top-level pool which can be used by tests. */
apr_pool_t *p;
1.1 httpd-apreq-2/t/test_apreq.h
Index: test_apreq.h
===================================================================
/* ====================================================================
* The Apache Software License, Version 1.1
*
* Copyright (c) 2000-2003 The Apache Software Foundation. All rights
* reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided with the
* distribution.
*
* 3. The end-user documentation included with the redistribution,
* if any, must include the following acknowledgment:
* "This product includes software developed by the
* Apache Software Foundation (http://www.apache.org/)."
* Alternately, this acknowledgment may appear in the software itself,
* if and wherever such third-party acknowledgments normally appear.
*
* 4. The names "Apache" and "Apache Software Foundation" must
* not be used to endorse or promote products derived from this
* software without prior written permission. For written
* permission, please contact [EMAIL PROTECTED]
*
* 5. Products derived from this software may not be called "Apache",
* nor may "Apache" appear in their name, without prior written
* permission of the Apache Software Foundation.
*
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
* ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
* USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
* ====================================================================
*
* This software consists of voluntary contributions made by many
* individuals on behalf of the Apache Software Foundation. For more
* information on the Apache Software Foundation, please see
* <http://www.apache.org/>.
*/
#ifndef APREQ_TEST_INCLUDES
#define APREQ_TEST_INCLUDES
#include "CuTest.h"
#include "apr_pools.h"
/* Some simple functions to make the test apps easier to write and
* a bit more consistent...
*/
extern apr_pool_t *p;
CuSuite *getsuite(void);
CuSuite *teststr(void);
CuSuite *testtime(void);
CuSuite *testvsn(void);
CuSuite *testipsub(void);
CuSuite *testmmap(void);
CuSuite *testud(void);
CuSuite *testtable(void);
CuSuite *testhash(void);
CuSuite *testsleep(void);
CuSuite *testpool(void);
CuSuite *testfmt(void);
CuSuite *testfile(void);
CuSuite *testdir(void);
CuSuite *testfileinfo(void);
CuSuite *testrand(void);
CuSuite *testdso(void);
CuSuite *testoc(void);
CuSuite *testdup(void);
CuSuite *testsockets(void);
CuSuite *testproc(void);
CuSuite *testpoll(void);
CuSuite *testlock(void);
CuSuite *testsockopt(void);
CuSuite *testpipe(void);
CuSuite *testthread(void);
CuSuite *testgetopt(void);
CuSuite *testnames(void);
CuSuite *testuser(void);
CuSuite *testpath(void);
CuSuite *testenv(void);
/* Assert that RV is an APR_SUCCESS value; else fail giving strerror
* for RV and CONTEXT message. */
void apr_assert_success(CuTest* tc, const char *context, apr_status_t rv);
#endif /* APR_TEST_INCLUDES */