[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Gnash-commit] gnash ChangeLog server/as_value.cpp
From: |
Chad Musick |
Subject: |
[Gnash-commit] gnash ChangeLog server/as_value.cpp |
Date: |
Wed, 12 Sep 2007 06:44:22 +0000 |
CVSROOT: /sources/gnash
Module name: gnash
Changes by: Chad Musick <cmusick> 07/09/12 06:44:22
Modified files:
. : ChangeLog
server : as_value.cpp
Log message:
Protect us against exceptions gone wild.
CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/gnash/ChangeLog?cvsroot=gnash&r1=1.4279&r2=1.4280
http://cvs.savannah.gnu.org/viewcvs/gnash/server/as_value.cpp?cvsroot=gnash&r1=1.71&r2=1.72
Patches:
Index: ChangeLog
===================================================================
RCS file: /sources/gnash/gnash/ChangeLog,v
retrieving revision 1.4279
retrieving revision 1.4280
diff -u -b -r1.4279 -r1.4280
--- ChangeLog 12 Sep 2007 06:02:13 -0000 1.4279
+++ ChangeLog 12 Sep 2007 06:44:22 -0000 1.4280
@@ -1,3 +1,10 @@
+2007-09-12 Chad Musick <address@hidden>
+
+ * server/as_value.cpp: Make sure that exceptions don't
+ cause asserts, even if they escape into the wild.
+ (This escape is an error, but perhaps it should not
+ be fatal.)
+
2007-09-12 Sandro Santilli <address@hidden>
* server/vm/ActionExec.cpp: cleanup variables initialization
Index: server/as_value.cpp
===================================================================
RCS file: /sources/gnash/gnash/server/as_value.cpp,v
retrieving revision 1.71
retrieving revision 1.72
diff -u -b -r1.71 -r1.72
--- server/as_value.cpp 11 Sep 2007 22:03:05 -0000 1.71
+++ server/as_value.cpp 12 Sep 2007 06:44:22 -0000 1.72
@@ -173,8 +173,8 @@
}
default:
- m_string_value = "<bad type> "+m_type;
- assert(0);
+ m_string_value = "[exception]";
+ break;
}
return m_string_value;
@@ -378,7 +378,8 @@
case MOVIECLIP:
return true;
default:
- assert(m_type == UNDEFINED || m_type == NULLTYPE);
+ assert(m_type == UNDEFINED || m_type == NULLTYPE ||
+ is_exception());
return false;
}
}
@@ -412,7 +413,8 @@
case MOVIECLIP:
return true;
default:
- assert(m_type == UNDEFINED || m_type == NULLTYPE);
+ assert(m_type == UNDEFINED || m_type == NULLTYPE ||
+ is_exception());
return false;
}
}
@@ -446,7 +448,8 @@
case MOVIECLIP:
return true;
default:
- assert(m_type == UNDEFINED || m_type == NULLTYPE);
+ assert(m_type == UNDEFINED || m_type == NULLTYPE ||
+ is_exception());
return false;
}
}
@@ -488,6 +491,7 @@
return init_boolean_instance(m_boolean_value);
default:
+ // Invalid to convert exceptions.
return NULL;
}
}
@@ -825,6 +829,8 @@
return "function";
default:
+ if (is_exception())
+ return "exception";
assert(0);
return NULL;
}
@@ -879,6 +885,8 @@
}
}
+ if (is_exception())
+ return false; // Exceptions equal nothing.
assert(0);
return false;
}
@@ -927,6 +935,8 @@
return buf;
}
default:
+ if (is_exception())
+ return "[exception]";
assert(0);
return NULL;
}
@@ -1138,9 +1148,11 @@
{
#ifdef GNASH_USE_GC
#ifdef MOVIECLIP_AS_SOFTREF
- if ( m_type == OBJECT || m_type == AS_FUNCTION )
+ if ( m_type == OBJECT || m_type == AS_FUNCTION ||
+ m_type == OBJECT_EXCEPT)
#else
- if ( m_type == OBJECT || m_type == AS_FUNCTION || m_type == MOVIECLIP)
+ if ( m_type == OBJECT || m_type == AS_FUNCTION || m_type == MOVIECLIP
+ || m_type == OBJECT_EXCEPT)
#endif
{
m_object_value->setReachable();