Skip to content
This repository has been archived by the owner on Feb 26, 2020. It is now read-only.

Object unpack may value to wrong output. #7

Open
lvella opened this issue Apr 6, 2017 · 0 comments
Open

Object unpack may value to wrong output. #7

lvella opened this issue Apr 6, 2017 · 0 comments

Comments

@lvella
Copy link

lvella commented Apr 6, 2017

If one of the keys parsed by UJObjectUnpack() could is not found, the order which the found keys are stored in output objects is wrong. For instance, following code:

#include <stdio.h>
#include "ujdecode.h"

int main() {
	UJObject obj;
	void *state;
	const char input[] = "{\"a\": {}, \"b\": 200 }";
	size_t cbInput = sizeof(input) - 1;

	const wchar_t *keys[] = { L"a", L"b"};
	UJObject a, b;

	obj = UJDecode(input, cbInput, NULL, &state);

	int ret = UJObjectUnpack(obj, 2, "NN", keys, &a, &b);
	printf("Return value: %d, a = %g, b = %g\n", ret, UJNumericFloat(a), UJNumericFloat(b));

	UJFree(state);
}

will output:

Return value: 1, a = 200, b = 0
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant