- size_t n = tal_count(jout->wrapping);
- if (n == 0)
- /* Can't have a fieldname if not in anything! */
- assert(!fieldname);
- else if (jout->wrapping[n-1] == '[')
- /* No fieldnames in arrays. */
- assert(!fieldname);
- else {
- /* Must have fieldnames in objects. */
- assert(fieldname);
- /* We don't escape this for you */
- assert(!json_escape_needed(fieldname, strlen(fieldname)));
+ /* We don't escape this for you */
+ assert(!fieldname || !json_escape_needed(fieldname, strlen(fieldname)));
+
+ /* Can't check anything else if we ran out of memory. */
+ if (jout->wrapping) {
+ size_t n = tal_count(jout->wrapping);
+ if (n == 0)
+ /* Can't have a fieldname if not in anything! */
+ assert(!fieldname);
+ else if (jout->wrapping[n-1] == '[')
+ /* No fieldnames in arrays. */
+ assert(!fieldname);
+ else {
+ /* Must have fieldnames in objects. */
+ assert(fieldname);
+ }