summaryrefslogtreecommitdiff
path: root/SpiceXPI/src/plugin/nsScriptablePeer.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'SpiceXPI/src/plugin/nsScriptablePeer.cpp')
-rw-r--r--SpiceXPI/src/plugin/nsScriptablePeer.cpp12
1 files changed, 9 insertions, 3 deletions
diff --git a/SpiceXPI/src/plugin/nsScriptablePeer.cpp b/SpiceXPI/src/plugin/nsScriptablePeer.cpp
index caab9b7..622659c 100644
--- a/SpiceXPI/src/plugin/nsScriptablePeer.cpp
+++ b/SpiceXPI/src/plugin/nsScriptablePeer.cpp
@@ -242,12 +242,14 @@ bool ScriptablePluginObject::SetProperty(NPIdentifier name, const NPVariant *val
return false;
std::string str;
+ std::stringstream ss;
PRBool boolean = false;
unsigned short val = -1;
if (NPVARIANT_IS_STRING(*value))
{
- str = NPVARIANT_TO_STRING(*value).UTF8Characters;
+ str.assign(NPVARIANT_TO_STRING(*value).UTF8Characters,
+ NPVARIANT_TO_STRING(*value).UTF8Length);
}
else if (NPVARIANT_IS_BOOLEAN(*value))
{
@@ -256,8 +258,12 @@ bool ScriptablePluginObject::SetProperty(NPIdentifier name, const NPVariant *val
else if (NPVARIANT_IS_INT32(*value))
{
val = NPVARIANT_TO_INT32(*value);
-
- std::stringstream ss;
+ ss << val;
+ ss >> str;
+ }
+ else if (NPVARIANT_IS_DOUBLE(*value))
+ {
+ val = NPVARIANT_TO_DOUBLE(*value);
ss << val;
ss >> str;
}