From f1d9ba4b380fafb6088f1be551f930cbf0126fb9 Mon Sep 17 00:00:00 2001 From: pdollar Date: Sun, 10 Jan 2016 20:21:53 -0800 Subject: [PATCH] MatlabApi/private/gason*.*: pulling in latest version of gason, minor refactor --- MatlabAPI/private/gason.cpp | 13 ++++++++++--- MatlabAPI/private/gason.h | 7 ++++--- MatlabAPI/private/gasonMex.cpp | 25 ++++++++++++++++++------- MatlabAPI/private/gasonMex.mexa64 | Bin 31439 -> 31722 bytes MatlabAPI/private/gasonMex.mexmaci64 | Bin 36788 -> 37036 bytes 5 files changed, 32 insertions(+), 13 deletions(-) diff --git a/MatlabAPI/private/gason.cpp b/MatlabAPI/private/gason.cpp index 5dd8df56..0f2c00e2 100755 --- a/MatlabAPI/private/gason.cpp +++ b/MatlabAPI/private/gason.cpp @@ -1,4 +1,4 @@ -// https://github.com/vivkin/gason - pulled May 29, 2015 +// https://github.com/vivkin/gason - pulled January 10, 2016 #include "gason.h" #include @@ -28,6 +28,8 @@ void *JsonAllocator::allocate(size_t size) { size_t allocSize = sizeof(Zone) + size; Zone *zone = (Zone *)malloc(allocSize <= JSON_ZONE_SIZE ? JSON_ZONE_SIZE : allocSize); + if (zone == nullptr) + return nullptr; zone->used = allocSize; if (allocSize <= JSON_ZONE_SIZE || head == nullptr) { zone->next = head; @@ -139,6 +141,7 @@ int jsonParse(char *s, char **endptr, JsonValue *value, JsonAllocator &allocator JsonValue o; int pos = -1; bool separator = true; + JsonNode *node; *endptr = s; while (*s) { @@ -316,11 +319,15 @@ int jsonParse(char *s, char **endptr, JsonValue *value, JsonAllocator &allocator keys[pos] = o.toString(); continue; } - tails[pos] = insertAfter(tails[pos], (JsonNode *)allocator.allocate(sizeof(JsonNode))); + if ((node = (JsonNode *) allocator.allocate(sizeof(JsonNode))) == nullptr) + return JSON_ALLOCATION_FAILURE; + tails[pos] = insertAfter(tails[pos], node); tails[pos]->key = keys[pos]; keys[pos] = nullptr; } else { - tails[pos] = insertAfter(tails[pos], (JsonNode *)allocator.allocate(sizeof(JsonNode) - sizeof(char *))); + if ((node = (JsonNode *) allocator.allocate(sizeof(JsonNode) - sizeof(char *))) == nullptr) + return JSON_ALLOCATION_FAILURE; + tails[pos] = insertAfter(tails[pos], node); } tails[pos]->value = o; } diff --git a/MatlabAPI/private/gason.h b/MatlabAPI/private/gason.h index f89a56d3..2e728d9f 100755 --- a/MatlabAPI/private/gason.h +++ b/MatlabAPI/private/gason.h @@ -1,4 +1,4 @@ -// https://github.com/vivkin/gason - pulled May 29, 2015 +// https://github.com/vivkin/gason - pulled January 10, 2016 #pragma once #include @@ -30,7 +30,7 @@ union JsonValue { : fval(x) { } JsonValue(JsonTag tag = JSON_NULL, void *payload = nullptr) { - assert((uint64_t)payload <= JSON_VALUE_PAYLOAD_MASK); + assert((uintptr_t)payload <= JSON_VALUE_PAYLOAD_MASK); ival = JSON_VALUE_NAN_MASK | ((uint64_t)tag << JSON_VALUE_TAG_SHIFT) | (uintptr_t)payload; } bool isDouble() const { @@ -97,7 +97,8 @@ inline JsonIterator end(JsonValue) { XX(MISMATCH_BRACKET, "mismatch bracket") \ XX(UNEXPECTED_CHARACTER, "unexpected character") \ XX(UNQUOTED_KEY, "unquoted key") \ - XX(BREAKING_BAD, "breaking bad") + XX(BREAKING_BAD, "breaking bad") \ + XX(ALLOCATION_FAILURE, "allocation failure") enum JsonErrno { #define XX(no, str) JSON_##no, diff --git a/MatlabAPI/private/gasonMex.cpp b/MatlabAPI/private/gasonMex.cpp index ee323556..63dd0e59 100644 --- a/MatlabAPI/private/gasonMex.cpp +++ b/MatlabAPI/private/gasonMex.cpp @@ -136,24 +136,35 @@ ostrm& json( ostrm& S, const mxArray *M ) { } } +mxArray* mxCreateStringRobust( const char* str ) { + // convert char* to Matlab string (robust version of mxCreateString) + mxArray *M; ushort *c; mwSize n[2]={1,strlen(str)}; + M=mxCreateCharArray(2,n); c=(ushort*) mxGetData(M); + for( siz i=0; i1 ) mexErrMsgTxt("One output expected."); if( mxGetClassID(pr[0])==mxCHAR_CLASS ) { // object = mexFunction( string ) - ushort *c=(ushort*) mxGetData(pr[0]); char* str; siz n; - n=mxGetNumberOfElements(pr[0]); str=(char*) mxMalloc(n+1); - for( siz i=0; i7Z$tB4u2pOpl;yO*fu3Y8Um2cRX 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 delta 10933 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 diff --git a/MatlabAPI/private/gasonMex.mexmaci64 b/MatlabAPI/private/gasonMex.mexmaci64 index 7c9d645cc1008ae2526fd08f47398e3926107e92..023e18bedde6a55388dd8fe95033c740dc3c51a6 100755 GIT binary patch literal 37036 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 literal 36788 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 Pwd1^!UXAp6L@WFsa=(58