[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Gnash-commit] gnash ChangeLog server/vm/ASHandlers.cpp server...
From: |
Benjamin Wolsey |
Subject: |
[Gnash-commit] gnash ChangeLog server/vm/ASHandlers.cpp server... |
Date: |
Fri, 23 May 2008 21:15:18 +0000 |
CVSROOT: /sources/gnash
Module name: gnash
Changes by: Benjamin Wolsey <bwy> 08/05/23 21:15:17
Modified files:
. : ChangeLog
server/vm : ASHandlers.cpp ActionExec.cpp
Log message:
* server/vm/ActionExec.cpp: clean up using directives.
* server/vm/ASHandlers.cpp: check that an object exists and
that it's
a proper object before enumerating it. Fixes bug #23331.
The second change will be backported to 0.8.3.
CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/gnash/ChangeLog?cvsroot=gnash&r1=1.6695&r2=1.6696
http://cvs.savannah.gnu.org/viewcvs/gnash/server/vm/ASHandlers.cpp?cvsroot=gnash&r1=1.242&r2=1.243
http://cvs.savannah.gnu.org/viewcvs/gnash/server/vm/ActionExec.cpp?cvsroot=gnash&r1=1.75&r2=1.76
Patches:
Index: ChangeLog
===================================================================
RCS file: /sources/gnash/gnash/ChangeLog,v
retrieving revision 1.6695
retrieving revision 1.6696
diff -u -b -r1.6695 -r1.6696
--- ChangeLog 23 May 2008 18:44:19 -0000 1.6695
+++ ChangeLog 23 May 2008 21:15:15 -0000 1.6696
@@ -1,3 +1,9 @@
+2008-05-23 Benjamin Wolsey <address@hidden>
+
+ * server/vm/ActionExec.cpp: clean up using directives.
+ * server/vm/ASHandlers.cpp: check that an object exists and that it's
+ a proper object before enumerating it. Fixes bug #23331.
+
2008-05-23 Russ Nelson <address@hidden>
* configure.ac: make the user's life a little easier by telling them
Index: server/vm/ASHandlers.cpp
===================================================================
RCS file: /sources/gnash/gnash/server/vm/ASHandlers.cpp,v
retrieving revision 1.242
retrieving revision 1.243
diff -u -b -r1.242 -r1.243
--- server/vm/ASHandlers.cpp 23 May 2008 12:01:10 -0000 1.242
+++ server/vm/ASHandlers.cpp 23 May 2008 21:15:17 -0000 1.243
@@ -3094,7 +3094,8 @@
env.top(0).set_null();
- if ( ! variable.is_object() )
+ const boost::intrusive_ptr<as_object> obj = variable.to_object();
+ if ( !obj || !variable.is_object() )
{
IF_VERBOSE_ASCODING_ERRORS(
log_aserror(_("Top of stack doesn't evaluate to an object (%s) at "
@@ -3104,8 +3105,6 @@
return;
}
- const boost::intrusive_ptr<as_object> obj = variable.to_object();
-
enumerateObject(env, *obj);
}
@@ -3757,18 +3756,16 @@
// as we copied that as_value.
env.top(0).set_null();
- if ( ! obj_val.is_object() )
+ const boost::intrusive_ptr<as_object> obj = obj_val.to_object();
+ if ( !obj || !obj_val.is_object() )
{
IF_VERBOSE_ASCODING_ERRORS(
log_aserror(_("Top of stack not an object %s at ActionEnum2 "
- " execution"),
- obj_val);
+ " execution"), obj_val);
);
return;
}
- boost::intrusive_ptr<as_object> obj = obj_val.to_object();
-
enumerateObject(env, *obj);
}
Index: server/vm/ActionExec.cpp
===================================================================
RCS file: /sources/gnash/gnash/server/vm/ActionExec.cpp,v
retrieving revision 1.75
retrieving revision 1.76
diff -u -b -r1.75 -r1.76
--- server/vm/ActionExec.cpp 21 May 2008 13:24:06 -0000 1.75
+++ server/vm/ActionExec.cpp 23 May 2008 21:15:17 -0000 1.76
@@ -49,19 +49,13 @@
// too much information for my tastes. I really want just
// to see how stack changes while executing actions...
// --strk Fri Jun 30 02:28:46 CEST 2006
-#define DEBUG_STACK 1
+# define DEBUG_STACK 1
// Max number of stack item to dump. 0 for unlimited.
-#define STACK_DUMP_LIMIT 32
+# define STACK_DUMP_LIMIT 32
#endif
-using namespace gnash;
-using namespace SWF;
-using std::string;
-using std::endl;
-using std::stringstream;
-
namespace gnash {
@@ -155,7 +149,7 @@
// Do not execute if scripts are disabled
if ( VM::get().getRoot().scriptsDisabled() ) return;
- static const SWFHandlers& ash = SWFHandlers::instance();
+ static const SWF::SWFHandlers& ash = SWF::SWFHandlers::instance();
_original_target = env.get_target();
@@ -168,12 +162,12 @@
log_action(_("at ActionExec operator() start, pc=%d"
", stop_pc=%d, code.size=%d."),
pc, stop_pc, code.size());
- stringstream ss;
+ std::stringstream ss;
env.dump_stack(ss, STACK_DUMP_LIMIT);
env.dump_global_registers(ss);
env.dump_local_registers(ss);
env.dump_local_variables(ss);
- log_action("%s", ss.str().c_str());
+ log_action("%s", ss.str());
);
#endif
@@ -305,8 +299,7 @@
size_t oldPc = pc;
IF_VERBOSE_ACTION (
- // FIXME, avoid direct dbglogfile access, use log_action
- log_action("PC:%d - EX: %s", pc, code.disasm(pc).c_str());
+ log_action("PC:%d - EX: %s", pc, code.disasm(pc));
);
// Set default next_pc offset, control flow action handlers
@@ -343,7 +336,7 @@
break;
}
- ash.execute((action_type)action_id, *this);
+ ash.execute(static_cast<SWF::action_type>(action_id), *this);
#if 1 // See bugs: #20974, #21069, #20996.
@@ -367,7 +360,7 @@
ss << "Discarding " << stop_pc-next_pc
<< " bytes of remaining opcodes: " << std::endl;
dumpActions(next_pc, stop_pc, ss);
- log_debug("%s", ss.str().c_str());
+ log_debug("%s", ss.str());
break;
}
#endif
@@ -384,12 +377,12 @@
#if DEBUG_STACK
IF_VERBOSE_ACTION (
log_action(_("After execution: PC %d, next PC %d, stack
follows"), pc, next_pc);
- stringstream ss;
+ std::stringstream ss;
env.dump_stack(ss, STACK_DUMP_LIMIT);
env.dump_global_registers(ss);
env.dump_local_registers(ss);
env.dump_local_variables(ss);
- log_action("%s", ss.str().c_str());
+ log_action("%s", ss.str());
);
#endif
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Gnash-commit] gnash ChangeLog server/vm/ASHandlers.cpp server...,
Benjamin Wolsey <=