MYDDAS: Fix a bug on memory dealocation on MYDDAS_STATS module

git-svn-id: https://yap.svn.sf.net/svnroot/yap/trunk@1669 b08c6af1-5177-4d33-ba66-4b1c6b8b522a
This commit is contained in:
tiagosoares
2006-06-06 14:11:36 +00:00
parent 93501eb171
commit 989d9579b3
14 changed files with 329 additions and 149 deletions

View File

@@ -9,7 +9,6 @@
#ifdef MYDDAS_STATS
#include "myddas_statistics.h"
#endif
#include "myddas_initialization.c"
#ifdef MYDDAS_ODBC
#include <sql.h>
#endif /*MYDDAS_ODBC*/
@@ -78,7 +77,7 @@ myddas_util_add_predicate(char *pred_name, Int pred_arity,
myddas_util_search_connection(con);
MYDDAS_UTIL_PREDICATE new =
myddas_util_initialize_predicate(pred_name,pred_arity,pred_module,node_con->predicates);
myddas_init_initialize_predicate(pred_name,pred_arity,pred_module,node_con->predicates);
if (new == NULL)
{
@@ -105,8 +104,7 @@ myddas_util_delete_predicate(MYDDAS_UTIL_PREDICATE to_delete){
break;
con_node->predicates = to_delete->next;
}
free(to_delete);
MYDDAS_FREE(to_delete,struct myddas_list_preds);
}
void
@@ -121,6 +119,10 @@ myddas_util_delete_connection(void *conn){
/* Removes the predicates list */
myddas_util_delete_predicate_list(to_delete->predicates);
#ifdef MYDDAS_STATS
/* Removes the stats list */
myddas_stats_delete_stats_list(to_delete->stats);
#endif
/* List Integrety */
/* Is the last element of the list */
if ((to_delete->next) != NULL)
@@ -132,7 +134,7 @@ myddas_util_delete_connection(void *conn){
else
to_delete->previous->next=to_delete->next;
free(to_delete);
MYDDAS_FREE(to_delete,struct myddas_list_connection);
return;
}
}
@@ -164,7 +166,7 @@ myddas_util_add_connection(void *conn, void *enviromment){
return node;
}
//put the new connection node on the top of the list
temp = myddas_util_initialize_connection(conn,enviromment,Yap_REGS.MYDDAS_GLOBAL_POINTER->myddas_top_connections);
temp = myddas_init_initialize_connection(conn,enviromment,Yap_REGS.MYDDAS_GLOBAL_POINTER->myddas_top_connections);
if (temp == NULL)
{
#ifdef DEBUG
@@ -243,12 +245,11 @@ myddas_util_delete_predicate_list(MYDDAS_UTIL_PREDICATE preds_list){
to_delete = preds_list;
preds_list = preds_list->next;
free(to_delete);
MYDDAS_FREE(to_delete,struct myddas_list_preds);
}
return;
}
#ifdef MYDDAS_MYSQL
void
myddas_util_table_write(MYSQL_RES *res_set){
@@ -319,7 +320,7 @@ myddas_util_table_write(MYSQL_RES *res_set){
#endif
//DELETE THIS WHEN DB_STATS IS COMPLETED
Int
MyddasInt
get_myddas_top(){
if (Yap_REGS.MYDDAS_GLOBAL_POINTER == NULL)
return 0;
@@ -332,7 +333,7 @@ myddas_util_get_pred_next(void *pointer){
return (void *) (temp->next);
}
Int
MyddasInt
myddas_util_get_pred_arity(void *pointer){
MYDDAS_UTIL_PREDICATE temp = (MYDDAS_UTIL_PREDICATE) pointer;
return temp->pred_arity;