davidg Sun Feb 25 11:31:17 2001 EDT
Modified files:
/php4/ext/midgard article.c midgard.c page.c topic.c
Log:
optimized the mgd_is_in_xxx_tree() functions
Index: php4/ext/midgard/article.c
diff -u php4/ext/midgard/article.c:1.8 php4/ext/midgard/article.c:1.9
--- php4/ext/midgard/article.c:1.8 Sat Feb 24 05:39:30 2001
+++ php4/ext/midgard/article.c Sun Feb 25 11:31:17 2001
@@ -1,4 +1,4 @@
-/* $Id: article.c,v 1.8 2001/02/24 13:39:30 davidg Exp $
+/* $Id: article.c,v 1.9 2001/02/25 19:31:17 davidg Exp $
Copyright (C) 1999 Jukka Zitting <[EMAIL PROTECTED]>
Copyright (C) 2000 The Midgard Project ry
Copyright (C) 2000 Emile Heyns, Aurora SA <[EMAIL PROTECTED]>
@@ -32,7 +32,6 @@
MGD_FUNCTION(is_article_in_topic_tree)
{
zval **root, **article;
- int *ids, id, i;
RETVAL_FALSE;
CHECK_MGD;
@@ -57,17 +56,10 @@
return;
#endif
- ids = mgd_tree(mgd_handle(), "topic", "up", (*root)->value.lval, 0, NULL);
- if (ids) {
- id = mgd_idfield(mgd_handle(), "topic", "article",
- (*article)->value.lval);
- for (i = 0; ids[i]; i++)
- if (ids[i] == id) {
- free(ids);
- RETURN_TRUE;
- }
- free(ids);
- }
+ if(mgd_is_in_tree(mgd_handle(), "topic", "up", (*root)->value.lval,
+ mgd_idfield(mgd_handle(), "topic", "article",
+ (*article)->value.lval)))
+ RETURN_TRUE;
}
const char *article_sort(const char *order)
Index: php4/ext/midgard/midgard.c
diff -u php4/ext/midgard/midgard.c:1.17 php4/ext/midgard/midgard.c:1.18
--- php4/ext/midgard/midgard.c:1.17 Sat Feb 24 13:12:11 2001
+++ php4/ext/midgard/midgard.c Sun Feb 25 11:31:17 2001
@@ -1,4 +1,4 @@
-/* $Id: midgard.c,v 1.17 2001/02/24 21:12:11 davidg Exp $
+/* $Id: midgard.c,v 1.18 2001/02/25 19:31:17 davidg Exp $
Copyright (C) 1999 Jukka Zitting <[EMAIL PROTECTED]>
Copyright (C) 2000 The Midgard Project ry
Copyright (C) 2000 Emile Heyns, Aurora SA <[EMAIL PROTECTED]>
@@ -374,7 +374,7 @@
MGDLS_FETCH();
/* set apache log facilities available to the library */
- // mgd_set_log_debug_func(mgd_log_debug);
+ mgd_set_log_debug_func(mgd_log_debug);
midgard_module = ap_find_linked_module("mod_midgard.c");
if (!midgard_module) {
@@ -754,7 +754,8 @@
ALLOC_ZVAL(return_value); ZVAL_NULL(return_value);
ALLOC_ZVAL(args[0]); ZVAL_LONG(args[0], id);
ALLOC_ZVAL(args[1]); ZVAL_LONG(args[1], level);
- args[2] = xp[0]; // DG: is this needed ? ->
zval_copy_ctor(args[2]);
+ args[2] = xp[0]; // DG: is this needed ? ->
+ zval_copy_ctor(args[2]);
if(call_user_function(CG(function_table), NULL,
xp[1], return_value, 3,
Index: php4/ext/midgard/page.c
diff -u php4/ext/midgard/page.c:1.8 php4/ext/midgard/page.c:1.9
--- php4/ext/midgard/page.c:1.8 Sat Feb 24 05:42:00 2001
+++ php4/ext/midgard/page.c Sun Feb 25 11:31:17 2001
@@ -1,4 +1,4 @@
-/* $Id: page.c,v 1.8 2001/02/24 13:42:00 davidg Exp $
+/* $Id: page.c,v 1.9 2001/02/25 19:31:17 davidg Exp $
Copyright (C) 1999 Jukka Zitting <[EMAIL PROTECTED]>
Copyright (C) 2000 The Midgard Project ry
Copyright (C) 2000 Emile Heyns, Aurora SA <[EMAIL PROTECTED]>
@@ -70,7 +70,6 @@
MGD_FUNCTION(is_in_page_tree)
{
zval **root, **page;
- int *ids, i;
RETVAL_FALSE;
CHECK_MGD;
@@ -90,15 +89,9 @@
if(!mgd_exists_id(mgd_handle(), "page", "id=$d", (*root)->value.lval))
RETURN_FALSE_BECAUSE(MGD_ERR_NOT_EXISTS);
- ids = mgd_tree(mgd_handle(), "page", "up", (*root)->value.lval, 0, NULL);
- if (ids) {
- for (i = 0; ids[i]; i++)
- if (ids[i] == (*page)->value.lval) {
- free(ids);
- RETURN_TRUE;
- }
- free(ids);
- }
+ if(mgd_is_in_tree(mgd_handle(), "page", "up",
+ (*root)->value.lval,
+(*page)->value.lval))
+ RETURN_TRUE;
}
MGD_FUNCTION(get_page)
Index: php4/ext/midgard/topic.c
diff -u php4/ext/midgard/topic.c:1.8 php4/ext/midgard/topic.c:1.9
--- php4/ext/midgard/topic.c:1.8 Sat Feb 24 05:39:30 2001
+++ php4/ext/midgard/topic.c Sun Feb 25 11:31:17 2001
@@ -1,4 +1,4 @@
-/* $Id: topic.c,v 1.8 2001/02/24 13:39:30 davidg Exp $
+/* $Id: topic.c,v 1.9 2001/02/25 19:31:17 davidg Exp $
Copyright (C) 1999 Jukka Zitting <[EMAIL PROTECTED]>
Copyright (C) 2000 The Midgard Project ry
Copyright (C) 2000 Emile Heyns, Aurora SA <[EMAIL PROTECTED]>
@@ -103,7 +103,7 @@
MGD_FUNCTION(is_in_topic_tree)
{
zval **root, **topic;
- int *ids, i;
+ int i;
RETVAL_FALSE;
CHECK_MGD;
@@ -127,15 +127,9 @@
return;
#endif
- ids = mgd_tree(mgd_handle(), "topic", "up", (*root)->value.lval, 0, NULL);
- if (ids) {
- for (i = 0; ids[i]; i++)
- if (ids[i] == (*topic)->value.lval) {
- free(ids);
- RETURN_TRUE;
- }
- free(ids);
- }
+ if((i = mgd_is_in_tree(mgd_handle(), "topic", "up",
+ (*root)->value.lval, (*topic)->value.lval)))
+ RETURN_TRUE;
}
MGD_FUNCTION(get_topic)
@@ -195,8 +189,8 @@
zval **up, **name, **description, **extra, **owner, **code;
zval *self;
- RETVAL_FALSE;
CHECK_MGD;
+ RETVAL_FALSE;
if ((self = getThis()) != NULL) {
if (!MGD_PROPFIND(self, "up", up)
@@ -227,7 +221,6 @@
(*up)->value.lval, (*name)->value.str.val)) {
RETURN_FALSE_BECAUSE(MGD_ERR_ACCESS_DENIED);
}
-
#if HAVE_MIDGARD_SITEGROUPS
/* up must be in same SG or be 0 */
if ((*up)->value.lval != 0 && !mgd_exists_id(mgd_handle(), "topic",
--
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
To contact the list administrators, e-mail: [EMAIL PROTECTED]