Author: jackson
Date: 2008-02-19 12:03:53 -0500 (Tue, 19 Feb 2008)
New Revision: 96165
Modified:
trunk/moon/src/ChangeLog
trunk/moon/src/xaml.cpp
Log:
* xaml.cpp: Parser error if we can't find the owner type when
setting properties.
Modified: trunk/moon/src/ChangeLog
===================================================================
--- trunk/moon/src/ChangeLog 2008-02-19 16:56:56 UTC (rev 96164)
+++ trunk/moon/src/ChangeLog 2008-02-19 17:03:53 UTC (rev 96165)
@@ -1,3 +1,8 @@
+2008-02-19 Jackson Harper <[EMAIL PROTECTED]>
+
+ * xaml.cpp: Parser error if we can't find the owner type when
+ setting properties.
+
2008-02-19 Sebastien Pouliot <[EMAIL PROTECTED]>
* geometry.cpp|h: #if out GetOriginPoint which calls moon_get_origin
Modified: trunk/moon/src/xaml.cpp
===================================================================
--- trunk/moon/src/xaml.cpp 2008-02-19 16:56:56 UTC (rev 96164)
+++ trunk/moon/src/xaml.cpp 2008-02-19 17:03:53 UTC (rev 96165)
@@ -855,8 +855,12 @@
if (!inst->item)
return;
- if (p->current_element && p->current_element->info)
+ if (p->current_element && p->current_element->info) {
p->current_element->info->add_child (p,
p->current_element, inst);
+ if (p->error_args)
+ return;
+ }
+
} else {
bool property = false;
@@ -1397,7 +1401,7 @@
XamlParserInfo *parser_info = NULL;
DependencyObject *res = NULL;
char *start = (char*)xaml;
-
+
if (!p) {
#ifdef DEBUG_XAML
printf ("can not create parser\n");
@@ -2756,6 +2760,13 @@
if (parent->element_type == XamlElementInstance::PROPERTY) {
char **prop_name = g_strsplit (parent->element_name, ".", -1);
Type *owner = Type::Find (prop_name [0]);
+
+ if (!owner) {
+ g_strfreev (prop_name);
+ parser_error (p, parent->element_name, NULL, 2007,
g_strdup_printf ("Unknown element: %s.", parent->element_name));
+ return;
+ }
+
DependencyProperty *dep =
DependencyObject::GetDependencyProperty (owner->type, prop_name [1]);
g_strfreev (prop_name);
_______________________________________________
Mono-patches maillist - [email protected]
http://lists.ximian.com/mailman/listinfo/mono-patches