ad1ac33c20a213b386adbc58e69bad6b75fb08c0
larrym
  Thu Apr 26 11:42:05 2012 -0700
cleanup per review items from tim
diff --git src/hg/lib/jsHelper.c src/hg/lib/jsHelper.c
index a478a9c..14e87af 100644
--- src/hg/lib/jsHelper.c
+++ src/hg/lib/jsHelper.c
@@ -867,65 +867,69 @@
 return (struct jsonElement *) newJsonList(list);
 }
 
 static struct jsonElement *jsonParseString(char *str, int *posPtr)
 {
 return (struct jsonElement *) newJsonString(getString(str, posPtr));
 }
 
 static struct jsonElement *jsonParseBoolean(char *str, int *posPtr)
 {
 struct jsonBooleanElement *ele = NULL;
 int i;
 for(i = 0; str[*posPtr + i] && isalpha(str[*posPtr + i]); i++);
     ;
 char *val = cloneStringZ(str + *posPtr, i);
-if(sameWord(val, "true"))
+if(sameString(val, "true"))
     ele = newJsonBoolean(TRUE);
-else if(sameWord(val, "false"))
+else if(sameString(val, "false"))
     ele =  newJsonBoolean(FALSE);
 else
     errAbort("Invalid boolean value '%s'; pos: %d", val, *posPtr);
 *posPtr += i;
+freez(&val);
 return (struct jsonElement *) ele;
 }
 
 static struct jsonElement *jsonParseNumber(char *str, int *posPtr)
 {
 int i;
 boolean integral = TRUE;
+struct jsonElement *retVal = NULL;
+
 for(i = 0;; i++)
     {
     char c = str[*posPtr + i];
     if(c == 'e' || c == 'E' || c == '.')
         integral = FALSE;
     else if(!c || (!isdigit(c) && c != '-'))
         break;
     }
 char *val = cloneStringZ(str + *posPtr, i);
 *posPtr += i;
 if(integral)
-    return (struct jsonElement *) newJsonNumber(sqlLongLong(val));
+    retVal = (struct jsonElement *) newJsonNumber(sqlLongLong(val));
 else
     {
     double d;
     if(sscanf(val, "%lf", &d))
-        return (struct jsonElement *) newJsonDouble(d);
+        retVal = (struct jsonElement *) newJsonDouble(d);
     else
-        errAbort("Invalid JSON Double: %s; pos: %d", val, *posPtr + i);
+        errAbort("Invalid JSON Double: %s", val);
     }
-return NULL;
+freez(&val);
+return retVal;
 }
 
 static struct jsonElement *jsonParseExpression(char *str, int *posPtr)
 {
 skipLeadingSpacesWithPos(str, posPtr);
 char c = str[*posPtr];
 if(c == '{')
     return jsonParseObject(str, posPtr);
 else if (c == '[')
     return jsonParseList(str, posPtr);
 else if (c == '"')
     return jsonParseString(str, posPtr);
 else if (isdigit(c) || c == '-')
     return jsonParseNumber(str, posPtr);
 else