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]