src/lib/rqlParse.c 1.2
1.2 2009/12/02 19:14:12 kent
Adding rqlStatementFree.
Index: src/lib/rqlParse.c
===================================================================
RCS file: /projects/compbio/cvsroot/kent/src/lib/rqlParse.c,v
retrieving revision 1.1
retrieving revision 1.2
diff -b -B -U 4 -r1.1 -r1.2
--- src/lib/rqlParse.c 2 Dec 2009 19:09:52 -0000 1.1
+++ src/lib/rqlParse.c 2 Dec 2009 19:14:12 -0000 1.2
@@ -640,4 +640,30 @@
}
fprintf(f, "\n");
}
+static void rqlParseFreeRecursive(struct rqlParse *p)
+/* Depth-first recursive free. */
+{
+struct rqlParse *child, *next;
+for (child = p->children; child != NULL; child = next)
+ {
+ next = child->next;
+ rqlParseFreeRecursive(child);
+ }
+freeMem(p);
+}
+
+void rqlStatementFree(struct rqlStatement **pRql)
+/* Free up an rql statement. */
+{
+struct rqlStatement *rql = *pRql;
+if (rql != NULL)
+ {
+ freeMem(rql->command);
+ slFreeList(&rql->fieldList);
+ slFreeList(&rql->tableList);
+ if (rql->whereClause !=NULL)
+ rqlParseFreeRecursive(rql->whereClause);
+ freez(pRql);
+ }
+}