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]