summaryrefslogtreecommitdiffstats
path: root/src/uscxml/plugins/datamodel/ecmascript
diff options
context:
space:
mode:
authorStefan Radomski <radomski@tk.informatik.tu-darmstadt.de>2013-07-04 19:46:07 (GMT)
committerStefan Radomski <radomski@tk.informatik.tu-darmstadt.de>2013-07-04 19:46:07 (GMT)
commit7bd0256239f247ed01ee6c673e31283c794bb3d0 (patch)
treea8c9b03374d995c6fd4b23cac2f5be282344bba3 /src/uscxml/plugins/datamodel/ecmascript
parent096f7df1137dd62871cacd371bf023e39d6b30e5 (diff)
downloaduscxml-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.cpp14
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;
}
}