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);
+    }
+}