* Fix additional error case in object parsing
  * Add back sign reversal in nested object parse as error pointer
    value is negative, while error value is positive.
    Michael Clark <michael@metaparadigm.com>


git-svn-id: http://svn.metaparadigm.com/svn/json-c/trunk@8 327403b1-1117-474d-bef2-5cb71233fd97
diff --git a/json_tokener.c b/json_tokener.c
index a224c7d..fdb5113 100644
--- a/json_tokener.c
+++ b/json_tokener.c
@@ -1,5 +1,5 @@
 /*
- * $Id: json_tokener.c,v 1.15 2005/07/15 03:19:43 mclark Exp $
+ * $Id: json_tokener.c,v 1.17 2005/07/26 07:49:11 mclark Exp $
  *
  * Copyright Metaparadigm Pte. Ltd. 2004.
  * Michael Clark <michael@metaparadigm.com>
@@ -350,7 +350,7 @@
       } else {
 	obj = json_tokener_do_parse(this);
 	if(is_error(obj)) {
-	  err = (enum json_tokener_error)obj;
+	  err = -(enum json_tokener_error)obj;
 	  goto out;
 	}
 	json_object_array_add(current, obj);
@@ -389,6 +389,9 @@
 	printbuf_reset(this->pb);
 	state = json_tokener_state_object_field;
 	start_offset = ++this->pos;
+      } else {
+	err = json_tokener_error_parse_object;
+	goto out;
       }
       break;
 
@@ -419,7 +422,7 @@
     case json_tokener_state_object_value:
       obj = json_tokener_do_parse(this);
       if(is_error(obj)) {
-	err = (enum json_tokener_error)obj;
+	err = -(enum json_tokener_error)obj;
 	goto out;
       }
       json_object_object_add(current, obj_field_name, obj);
@@ -457,5 +460,5 @@
   mc_debug("json_tokener_do_parse: error=%d state=%d char=%c\n",
 	   err, state, c);
   json_object_put(current);
-  return error_ptr((ptrdiff_t)-err);
+  return error_ptr(-err);
 }