|
|
@ -814,9 +814,25 @@ encode_iter(ErlNifEnv* env, int argc, const ERL_NIF_TERM argv[]) |
|
|
|
ret = enc_obj_error(e, "invalid_object_member_arity", item); |
|
|
|
goto done; |
|
|
|
} |
|
|
|
if(!enc_string(e, tuple[0])) { |
|
|
|
ret = enc_obj_error(e, "invalid_object_member_key", tuple[0]); |
|
|
|
goto done; |
|
|
|
if(enif_get_int64(env, tuple[0], &lval)) { |
|
|
|
if (!enc_char(e, '"')) { |
|
|
|
ret = enc_error(e, "internal_error"); |
|
|
|
goto done; |
|
|
|
} |
|
|
|
if(!enc_long(e, lval)) { |
|
|
|
ret = enc_obj_error(e, "invalid_object_member_key", tuple[0]); |
|
|
|
goto done; |
|
|
|
} |
|
|
|
if (!enc_char(e, '"')) { |
|
|
|
ret = enc_error(e, "internal_error"); |
|
|
|
goto done; |
|
|
|
} |
|
|
|
} |
|
|
|
else { |
|
|
|
if(!enc_string(e, tuple[0])) { |
|
|
|
ret = enc_obj_error(e, "invalid_object_member_key", tuple[0]); |
|
|
|
goto done; |
|
|
|
} |
|
|
|
} |
|
|
|
if(!enc_colon(e)) { |
|
|
|
ret = enc_error(e, "internal_error"); |
|
|
|