davidg Sat Feb 24 05:39:30 2001 EDT Modified files: /php4/ext/midgard article.c calendar.c event.c person.c topic.c Log: fixed some possible memory leaks.
Index: php4/ext/midgard/article.c diff -u php4/ext/midgard/article.c:1.7 php4/ext/midgard/article.c:1.8 --- php4/ext/midgard/article.c:1.7 Thu Feb 22 09:39:37 2001 +++ php4/ext/midgard/article.c Sat Feb 24 05:39:30 2001 @@ -1,4 +1,4 @@ -/* $Id: article.c,v 1.7 2001/02/22 17:39:37 davidg Exp $ +/* $Id: article.c,v 1.8 2001/02/24 13:39:30 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]> @@ -59,12 +59,14 @@ ids = mgd_tree(mgd_handle(), "topic", "up", (*root)->value.lval, 0, NULL); if (ids) { - id = - mgd_idfield(mgd_handle(), "topic", "article", + id = mgd_idfield(mgd_handle(), "topic", "article", (*article)->value.lval); for (i = 0; ids[i]; i++) - if (ids[i] == id) + if (ids[i] == id) { + free(ids); RETURN_TRUE; + } + free(ids); } } @@ -254,21 +256,24 @@ topics = mgd_tree(mgd_handle(), "topic", "up", (*id)->value.lval, 0, NULL); - if (typev == -1) - php_midgard_select(&MidgardArticle, return_value, - ARTICLE_SELECT, - ARTICLE_FROM, - "article.topic IN $D AND author=person.id" - " AND (article.up=$d OR 1=$d)", - sortv, topics, up, up_wild); - else - php_midgard_select(&MidgardArticle, return_value, - ARTICLE_SELECT, - ARTICLE_FROM, - "article.type=$d AND article.topic IN $D" - " AND (article.up=$d OR 1=$d)" - " AND author=person.id", - sortv, typev, topics, up, up_wild); + if(topics) { + if (typev == -1) + php_midgard_select(&MidgardArticle, return_value, + ARTICLE_SELECT, + ARTICLE_FROM, + "article.topic IN $D AND author=person.id" + " AND (article.up=$d OR 1=$d)", + sortv, topics, up, up_wild); + else + php_midgard_select(&MidgardArticle, return_value, + ARTICLE_SELECT, + ARTICLE_FROM, + "article.type=$d AND article.topic IN $D" + " AND (article.up=$d OR 1=$d)" + " AND author=person.id", + sortv, typev, topics, up, up_wild); + free(topics); + } } MGD_FUNCTION(list_topic_articles_all_fast) @@ -331,20 +336,23 @@ topics = mgd_tree(mgd_handle(), "topic", "up", (*id)->value.lval, 0, NULL); - if (typev == -1) - php_midgard_select(&MidgardArticle, return_value, - ARTICLE_SELECT_FAST, - ARTICLE_FROM_FAST, - "article.topic IN $D" - " AND (article.up=$d OR 1=$d)", - sortv, topics, up, up_wild); - else - php_midgard_select(&MidgardArticle, return_value, - ARTICLE_SELECT_FAST, - ARTICLE_FROM_FAST, - "article.type=$d AND article.topic IN $D" - " AND (article.up=$d OR 1=$d)", - sortv, typev, topics, up, up_wild); + if(topics) { + if (typev == -1) + php_midgard_select(&MidgardArticle, return_value, + ARTICLE_SELECT_FAST, + ARTICLE_FROM_FAST, + "article.topic IN $D" + " AND (article.up=$d OR 1=$d)", + sortv, topics, up, up_wild); + else + php_midgard_select(&MidgardArticle, return_value, + ARTICLE_SELECT_FAST, + ARTICLE_FROM_FAST, + "article.type=$d AND article.topic IN $D" + " AND (article.up=$d OR 1=$d)", + sortv, typev, topics, up, up_wild); + free(topics); + } } MGD_FUNCTION(list_topic_articles_all_of_person) @@ -362,11 +370,15 @@ topics = mgd_tree(mgd_handle(), "topic", "up", (*topic)->value.lval, 0, NULL); - php_midgard_select(&MidgardArticle, return_value, - ARTICLE_SELECT, ARTICLE_FROM, - "article.topic IN $D AND author=person.id AND author=$d AND article.up=0", - "article.created DESC", topics, - (*person)->value.lval); + if(topics) { + php_midgard_select(&MidgardArticle, return_value, + ARTICLE_SELECT, ARTICLE_FROM, + "article.topic IN $D AND author=person.id" + " AND author=$d AND article.up=0", + "article.created DESC", topics, + (*person)->value.lval); + free(topics); + } } MGD_FUNCTION(get_article) Index: php4/ext/midgard/calendar.c diff -u php4/ext/midgard/calendar.c:1.4 php4/ext/midgard/calendar.c:1.5 --- php4/ext/midgard/calendar.c:1.4 Thu Feb 22 09:39:37 2001 +++ php4/ext/midgard/calendar.c Sat Feb 24 05:39:30 2001 @@ -1,4 +1,4 @@ -/* $Id: calendar.c,v 1.4 2001/02/22 17:39:37 davidg Exp $ +/* $Id: calendar.c,v 1.5 2001/02/24 13:39:30 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]> @@ -95,23 +95,26 @@ topics = mgd_tree(mgd_handle(), "topic", "up", (*id)->value.lval, 0, NULL); - if (typev == -1) - php_midgard_select(&MidgardArticle, return_value, - ARTICLE_SELECT "," ARTICLE_CALENDAR, ARTICLE_FROM, - "article.topic IN $D AND author=person.id" - " AND article.up=0 AND Unix_Timestamp(calstart)<$d" - " AND 24*60*60-1+Unix_timestamp(" - " Date_Add(calstart, INTERVAL caldays DAY))>$d", - sortv, topics, stopv, startv); - else - php_midgard_select(&MidgardArticle, return_value, - ARTICLE_SELECT "," ARTICLE_CALENDAR, ARTICLE_FROM, - "article.type=$d AND article.topic IN $D" - " AND author=person.id" - " AND article.up=0 AND Unix_Timestamp(calstart)<$d" - " AND 24*60*60-1+Unix_timestamp(" - " Date_Add(calstart, INTERVAL caldays DAY))>$d", - sortv, typev, topics, stopv, startv); + if(topics) { + if (typev == -1) + php_midgard_select(&MidgardArticle, return_value, + ARTICLE_SELECT "," +ARTICLE_CALENDAR, ARTICLE_FROM, + "article.topic IN $D AND +author=person.id" + " AND article.up=0 AND +Unix_Timestamp(calstart)<$d" + " AND 24*60*60-1+Unix_timestamp(" + " Date_Add(calstart, INTERVAL +caldays DAY))>$d", + sortv, topics, stopv, startv); + else + php_midgard_select(&MidgardArticle, return_value, + ARTICLE_SELECT "," +ARTICLE_CALENDAR, ARTICLE_FROM, + "article.type=$d AND article.topic +IN $D" + " AND author=person.id" + " AND article.up=0 AND +Unix_Timestamp(calstart)<$d" + " AND 24*60*60-1+Unix_timestamp(" + " Date_Add(calstart, INTERVAL +caldays DAY))>$d", + sortv, typev, topics, stopv, +startv); + free(topics); + } } MGD_FUNCTION(list_topic_calendar_all_fast) @@ -186,20 +189,25 @@ topics = mgd_tree(mgd_handle(), "topic", "up", (*id)->value.lval, 0, NULL); - if (typev == -1) - php_midgard_select(&MidgardArticle, return_value, ARTICLE_SELECT_FAST "," ARTICLE_CALENDAR, - ARTICLE_FROM_FAST, - "article.topic IN $D" - " AND article.up=0 AND Unix_Timestamp(calstart)<$d" - " AND 24*60*60-1+Unix_timestamp(" - " Date_Add(calstart, INTERVAL caldays DAY))>$d", - sortv, topics, stopv, startv); - else - php_midgard_select(&MidgardArticle, return_value, ARTICLE_SELECT_FAST "," ARTICLE_CALENDAR, - ARTICLE_FROM_FAST, - "article.type=$d AND article.topic IN $D" - " AND article.up=0 AND Unix_Timestamp(calstart)<$d" - " AND 24*60*60-1+Unix_timestamp(" - " Date_Add(calstart, INTERVAL caldays DAY))>$d", - sortv, typev, topics, stopv, startv); + if(topics) { + if (typev == -1) + php_midgard_select(&MidgardArticle, return_value, + ARTICLE_SELECT_FAST "," +ARTICLE_CALENDAR, + ARTICLE_FROM_FAST, + "article.topic IN $D" + " AND article.up=0 AND +Unix_Timestamp(calstart)<$d" + " AND 24*60*60-1+Unix_timestamp(" + " Date_Add(calstart, INTERVAL +caldays DAY))>$d", + sortv, topics, stopv, startv); + else + php_midgard_select(&MidgardArticle, return_value, + ARTICLE_SELECT_FAST "," +ARTICLE_CALENDAR, + ARTICLE_FROM_FAST, + "article.type=$d AND article.topic +IN $D" + " AND article.up=0 AND +Unix_Timestamp(calstart)<$d" + " AND 24*60*60-1+Unix_timestamp(" + " Date_Add(calstart, INTERVAL +caldays DAY))>$d", + sortv, typev, topics, stopv, +startv); + free(topics); + } } Index: php4/ext/midgard/event.c diff -u php4/ext/midgard/event.c:1.6 php4/ext/midgard/event.c:1.7 --- php4/ext/midgard/event.c:1.6 Thu Feb 22 09:39:37 2001 +++ php4/ext/midgard/event.c Sat Feb 24 05:39:30 2001 @@ -1,4 +1,4 @@ -/* $Id: event.c,v 1.6 2001/02/22 17:39:37 davidg Exp $ +/* $Id: event.c,v 1.7 2001/02/24 13:39:30 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]> @@ -520,6 +520,7 @@ (*start)->value.lval,(*end)->value.lval, (*start)->value.lval,(*end)->value.lval, (*start)->value.lval,(*end)->value.lval); + free(events); } else { if (typev == -1) php_midgard_select(&MidgardEvent, return_value, "id,up,start,end,title," Index: php4/ext/midgard/person.c diff -u php4/ext/midgard/person.c:1.5 php4/ext/midgard/person.c:1.6 --- php4/ext/midgard/person.c:1.5 Thu Feb 22 09:39:37 2001 +++ php4/ext/midgard/person.c Sat Feb 24 05:39:30 2001 @@ -1,4 +1,4 @@ -/* $Id: person.c,v 1.5 2001/02/22 17:39:37 davidg Exp $ +/* $Id: person.c,v 1.6 2001/02/24 13:39:30 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]> @@ -148,8 +148,11 @@ deps = mgd_tree(mgd_handle(), "topic", "up", (*id)->value.lval, 0, NULL); - php_midgard_select(&MidgardPerson, return_value, PERSON_SELECT, - "person", "department IN $D", sortv, deps); + if(deps) { + php_midgard_select(&MidgardPerson, return_value, PERSON_SELECT, + "person", "department IN $D", sortv, deps); + free(deps); + } } MGD_FUNCTION(list_topic_persons_all) Index: php4/ext/midgard/topic.c diff -u php4/ext/midgard/topic.c:1.7 php4/ext/midgard/topic.c:1.8 --- php4/ext/midgard/topic.c:1.7 Thu Feb 22 09:39:37 2001 +++ php4/ext/midgard/topic.c Sat Feb 24 05:39:30 2001 @@ -1,4 +1,4 @@ -/* $Id: topic.c,v 1.7 2001/02/22 17:39:37 davidg Exp $ +/* $Id: topic.c,v 1.8 2001/02/24 13:39:30 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]> @@ -128,10 +128,14 @@ #endif ids = mgd_tree(mgd_handle(), "topic", "up", (*root)->value.lval, 0, NULL); - if (ids) + if (ids) { for (i = 0; ids[i]; i++) - if (ids[i] == (*topic)->value.lval) + if (ids[i] == (*topic)->value.lval) { + free(ids); RETURN_TRUE; + } + free(ids); + } } MGD_FUNCTION(get_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]