diff options
author | Stefan Radomski <radomski@tk.informatik.tu-darmstadt.de> | 2013-07-04 19:46:07 (GMT) |
---|---|---|
committer | Stefan Radomski <radomski@tk.informatik.tu-darmstadt.de> | 2013-07-04 19:46:07 (GMT) |
commit | 7bd0256239f247ed01ee6c673e31283c794bb3d0 (patch) | |
tree | a8c9b03374d995c6fd4b23cac2f5be282344bba3 /src/uscxml/plugins/datamodel/ecmascript | |
parent | 096f7df1137dd62871cacd371bf023e39d6b30e5 (diff) | |
download | uscxml-7bd0256239f247ed01ee6c673e31283c794bb3d0.zip uscxml-7bd0256239f247ed01ee6c673e31283c794bb3d0.tar.gz uscxml-7bd0256239f247ed01ee6c673e31283c794bb3d0.tar.bz2 |
Reactiveated umundo invoker
Diffstat (limited to 'src/uscxml/plugins/datamodel/ecmascript')
-rw-r--r-- | src/uscxml/plugins/datamodel/ecmascript/JavaScriptCore/JSCDataModel.cpp | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/src/uscxml/plugins/datamodel/ecmascript/JavaScriptCore/JSCDataModel.cpp b/src/uscxml/plugins/datamodel/ecmascript/JavaScriptCore/JSCDataModel.cpp index c78cdad..8feb73a 100644 --- a/src/uscxml/plugins/datamodel/ecmascript/JavaScriptCore/JSCDataModel.cpp +++ b/src/uscxml/plugins/datamodel/ecmascript/JavaScriptCore/JSCDataModel.cpp @@ -220,9 +220,12 @@ Data JSCDataModel::getValueAsData(const JSValueRef value) { if (exception) handleException(exception); - char* buf = (char*)malloc(JSStringGetMaximumUTF8CStringSize(stringValue)); - JSStringGetUTF8CString(stringValue, buf, sizeof(buf)); + size_t maxSize = JSStringGetMaximumUTF8CStringSize(stringValue); + char* buf = new char[maxSize]; + JSStringGetUTF8CString(stringValue, buf, maxSize); + data.atom = std::string(buf); + JSStringRelease(stringValue); free(buf); break; } @@ -236,12 +239,14 @@ Data JSCDataModel::getValueAsData(const JSValueRef value) { bool isArray = true; for (size_t i = 0; i < paramCount; i++) { JSStringRef stringValue = JSPropertyNameArrayGetNameAtIndex(properties, i); - char* buf = (char*)malloc(JSStringGetMaximumUTF8CStringSize(stringValue)); - JSStringGetUTF8CString(stringValue, buf, sizeof(buf)); + size_t maxSize = JSStringGetMaximumUTF8CStringSize(stringValue); + char* buf = new char[maxSize]; + JSStringGetUTF8CString(stringValue, buf, maxSize); std::string property(buf); if (!isNumeric(property.c_str(), 10)) isArray = false; propertySet.insert(property); + JSStringRelease(stringValue); free(buf); } std::set<std::string>::iterator propIter = propertySet.begin(); @@ -261,7 +266,6 @@ Data JSCDataModel::getValueAsData(const JSValueRef value) { } propIter++; } - break; } } |