summaryrefslogtreecommitdiffstats
path: root/src/uscxml/plugins/datamodel/ecmascript/JavaScriptCore
diff options
context:
space:
mode:
authorStefan Radomski <radomski@tk.informatik.tu-darmstadt.de>2013-12-20 00:56:45 (GMT)
committerStefan Radomski <radomski@tk.informatik.tu-darmstadt.de>2013-12-20 00:56:45 (GMT)
commit0388c7ac478187ff8d264b6e0275a4c4a43796b9 (patch)
tree7e62439ebf72b6369ee7b1daa370e6251c06b7e0 /src/uscxml/plugins/datamodel/ecmascript/JavaScriptCore
parent22e22bfd0965e01fea041e053873d352387805f6 (diff)
downloaduscxml-0388c7ac478187ff8d264b6e0275a4c4a43796b9.zip
uscxml-0388c7ac478187ff8d264b6e0275a4c4a43796b9.tar.gz
uscxml-0388c7ac478187ff8d264b6e0275a4c4a43796b9.tar.bz2
Performance and bugfix for WebSockets
Diffstat (limited to 'src/uscxml/plugins/datamodel/ecmascript/JavaScriptCore')
-rw-r--r--src/uscxml/plugins/datamodel/ecmascript/JavaScriptCore/JSCDataModel.cpp15
1 files changed, 8 insertions, 7 deletions
diff --git a/src/uscxml/plugins/datamodel/ecmascript/JavaScriptCore/JSCDataModel.cpp b/src/uscxml/plugins/datamodel/ecmascript/JavaScriptCore/JSCDataModel.cpp
index 947c0c2..9827b91 100644
--- a/src/uscxml/plugins/datamodel/ecmascript/JavaScriptCore/JSCDataModel.cpp
+++ b/src/uscxml/plugins/datamodel/ecmascript/JavaScriptCore/JSCDataModel.cpp
@@ -400,9 +400,10 @@ Data JSCDataModel::getValueAsData(const JSValueRef value) {
if (!isNumeric(property.c_str(), 10))
isArray = false;
propertySet.insert(property);
- JSStringRelease(stringValue);
+ //JSStringRelease(stringValue); // JSPropertyNameArrayRelease does the job it seems
free(buf);
}
+ JSPropertyNameArrayRelease(properties);
std::set<std::string>::iterator propIter = propertySet.begin();
while(propIter != propertySet.end()) {
if (isArray) {
@@ -537,14 +538,14 @@ void JSCDataModel::assign(const Element<std::string>& assignElem,
throw Event("error.execution", Event::PLATFORM);
// flags on attribute are ignored?
- if (key.compare("_sessionid") == 0)
- return; //throw Event("error.execution", Event::PLATFORM);
+ if (key.compare("_sessionid") == 0) // test 322
+ throw Event("error.execution", Event::PLATFORM);
if (key.compare("_name") == 0)
- return; //throw Event("error.execution", Event::PLATFORM);
- if (key.compare("_ioprocessors") == 0)
- return; //throw Event("error.execution", Event::PLATFORM);
+ throw Event("error.execution", Event::PLATFORM);
+ if (key.compare("_ioprocessors") == 0) // test 326
+ throw Event("error.execution", Event::PLATFORM);
if (key.compare("_invokers") == 0)
- return; //throw Event("error.execution", Event::PLATFORM);
+ throw Event("error.execution", Event::PLATFORM);
if (HAS_ATTR(assignElem, "expr")) {
evalAsValue(key + " = " + ATTR(assignElem, "expr"));