summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFederico Simoncelli <fsimonce@redhat.com>2012-12-10 13:08:07 +0100
committerPeter Hatina <phatina@redhat.com>2012-12-10 13:08:07 +0100
commitcc1c1169b1ddab5fc664bd169db086e29ecd6af5 (patch)
tree5037fb4176317766239857b3af1d383a3852668a
parente3722a60d097228277061e8331b45b39117467cc (diff)
fix issues in ScriptablePluginObject::SetProperty
-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;
}