Author: fejj
Date: 2008-01-03 15:33:32 -0500 (Thu, 03 Jan 2008)
New Revision: 92204
Modified:
trunk/moon/plugin/ChangeLog
trunk/moon/plugin/plugin-class.cpp
Log:
2008-01-03 Jeffrey Stedfast <[EMAIL PROTECTED]>
* plugin-class.cpp (_set_dependency_property_value): For
non-object variants, we can easily get away with using a static
string buffer rather than using dynamically allocated strings to
hold our temp values.
Modified: trunk/moon/plugin/ChangeLog
===================================================================
--- trunk/moon/plugin/ChangeLog 2008-01-03 20:16:29 UTC (rev 92203)
+++ trunk/moon/plugin/ChangeLog 2008-01-03 20:33:32 UTC (rev 92204)
@@ -1,3 +1,10 @@
+2008-01-03 Jeffrey Stedfast <[EMAIL PROTECTED]>
+
+ * plugin-class.cpp (_set_dependency_property_value): For
+ non-object variants, we can easily get away with using a static
+ string buffer rather than using dynamically allocated strings to
+ hold our temp values.
+
2007-12-26 Rolf Bjarne Kvinge <[EMAIL PROTECTED]>
* plugin.cpp: PluginInstance::SetSource: don't check if we're setting
the
Modified: trunk/moon/plugin/plugin-class.cpp
===================================================================
--- trunk/moon/plugin/plugin-class.cpp 2008-01-03 20:16:29 UTC (rev 92203)
+++ trunk/moon/plugin/plugin-class.cpp 2008-01-03 20:33:32 UTC (rev 92204)
@@ -1926,50 +1926,52 @@
DEBUG_WARN_NOTIMPLEMENTED ("unhandled object type in
do.set_property");
return true;
}
- }
- else {
- char *strvalue = NULL;
-
+ } else {
+ const char *strval = NULL;
+ char strbuf[64];
+
if (NPVARIANT_IS_BOOLEAN (*value)) {
- strvalue = g_strdup (NPVARIANT_TO_BOOLEAN (*value) ?
"true" : "false");
- }
- else if (NPVARIANT_IS_INT32 (*value)) {
- strvalue = g_strdup_printf ("%d", NPVARIANT_TO_INT32
(*value));
- }
- else if (NPVARIANT_IS_DOUBLE (*value)) {
- strvalue = g_strdup_printf ("%g", NPVARIANT_TO_DOUBLE
(*value));
- }
- else if (NPVARIANT_IS_STRING (*value)) {
- strvalue = g_strdup (STR_FROM_VARIANT (*value));
- }
- else if (NPVARIANT_IS_NULL (*value)){
- DEBUGMSG ("Setting NULL for (%s::%s)", dob->GetTypeName
(), p->name);
- if (p->value_type >= Type::DEPENDENCY_OBJECT){
+ if (NPVARIANT_TO_BOOLEAN (*value))
+ strcpy (strbuf, "true");
+ else
+ strcpy (strbuf, "false");
+
+ strval = strbuf;
+ } else if (NPVARIANT_IS_INT32 (*value)) {
+ g_snprintf (strbuf, sizeof (strbuf), "%d",
NPVARIANT_TO_INT32 (*value));
+
+ strval = strbuf;
+ } else if (NPVARIANT_IS_DOUBLE (*value)) {
+ g_snprintf (strbuf, sizeof (strbuf), "%g",
NPVARIANT_TO_DOUBLE (*value));
+
+ strval = strbuf;
+ } else if (NPVARIANT_IS_STRING (*value)) {
+ strval = STR_FROM_VARIANT (*value);
+ } else if (NPVARIANT_IS_NULL (*value)) {
+ if (p->value_type >= Type::DEPENDENCY_OBJECT) {
DependencyObject *val = NULL;
-
+
dob->SetValue (p, Value (val));
} else if (p->value_type == Type::STRING) {
char *val = NULL;
-
+
dob->SetValue (p, Value (val));
- } else
+ } else {
DEBUGWARN ("Setting NULL for unsupported type
(%s::%s)", dob->GetTypeName (), p->name);
-
-
+ }
+
return true;
- }
- else if (NPVARIANT_IS_VOID (*value)){
+ } else if (NPVARIANT_IS_VOID (*value)) {
DEBUGWARN ("unhandled variant type VOID in
do.set_property for (%s::%s)", dob->GetTypeName (), p->name);
return true;
- }
- else {
+ } else {
DEBUGWARN ("unhandled variant type in do.set_property
for (%s::%s)", dob->GetTypeName (), p->name);
return true;
}
-
- xaml_set_property_from_str (dob, p, strvalue);
-
- g_free (strvalue);
+
+ g_assert (strval != NULL);
+
+ xaml_set_property_from_str (dob, p, strval);
}
return true;
_______________________________________________
Mono-patches maillist - [email protected]
http://lists.ximian.com/mailman/listinfo/mono-patches