[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Gnash-commit] gnash ChangeLog server/debugger.cpp server/debu...
From: |
Sandro Santilli |
Subject: |
[Gnash-commit] gnash ChangeLog server/debugger.cpp server/debu... |
Date: |
Mon, 16 Apr 2007 07:37:09 +0000 |
CVSROOT: /sources/gnash
Module name: gnash
Changes by: Sandro Santilli <strk> 07/04/16 07:37:08
Modified files:
. : ChangeLog
server : debugger.cpp debugger.h
server/vm : ASHandlers.cpp
Log message:
* server/debugger.{cpp,h}: (matchWatchPoint) const-corrected
* server/vm/ASHandlers.cpp: (ActionCallFrame): properly handle
unknown target;
more optimization of stack access and string copies.
CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/gnash/ChangeLog?cvsroot=gnash&r1=1.2881&r2=1.2882
http://cvs.savannah.gnu.org/viewcvs/gnash/server/debugger.cpp?cvsroot=gnash&r1=1.14&r2=1.15
http://cvs.savannah.gnu.org/viewcvs/gnash/server/debugger.h?cvsroot=gnash&r1=1.9&r2=1.10
http://cvs.savannah.gnu.org/viewcvs/gnash/server/vm/ASHandlers.cpp?cvsroot=gnash&r1=1.92&r2=1.93
Patches:
Index: ChangeLog
===================================================================
RCS file: /sources/gnash/gnash/ChangeLog,v
retrieving revision 1.2881
retrieving revision 1.2882
diff -u -b -r1.2881 -r1.2882
--- ChangeLog 16 Apr 2007 07:10:44 -0000 1.2881
+++ ChangeLog 16 Apr 2007 07:37:08 -0000 1.2882
@@ -1,10 +1,11 @@
2007-04-16 Sandro Santilli <address@hidden>
+ * server/debugger.{cpp,h}: (matchWatchPoint) const-corrected
* server/vm/ASHandlers.cpp: always pass an as_environment pointer
when converting as_value to a string, use to_string rather
then to_std_string() when a reference is enough;
(ActionDuplicateClip):
- properly cleanup the stack on error; (ActionGotoFrameExpression):
- properly handle unknown target.
+ properly cleanup the stack on error; (ActionGotoFrameExpression,
+ ActionCallFrame): properly handle unknown target.
* testsuite/misc-ming.all/Makefile.am:
Activated get_frame_number and frame_label_test.
Index: server/debugger.cpp
===================================================================
RCS file: /sources/gnash/gnash/server/debugger.cpp,v
retrieving revision 1.14
retrieving revision 1.15
diff -u -b -r1.14 -r1.15
--- server/debugger.cpp 20 Mar 2007 15:01:20 -0000 1.14
+++ server/debugger.cpp 16 Apr 2007 07:37:08 -0000 1.15
@@ -505,7 +505,7 @@
}
bool
-Debugger::matchWatchPoint(std::string &var, watch_state_e state)
+Debugger::matchWatchPoint(const std::string &var, watch_state_e state)
{
// GNASH_REPORT_FUNCTION;
std::map<std::string, watch_state_e>::const_iterator it;
Index: server/debugger.h
===================================================================
RCS file: /sources/gnash/gnash/server/debugger.h,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -b -r1.9 -r1.10
--- server/debugger.h 15 Mar 2007 22:39:53 -0000 1.9
+++ server/debugger.h 16 Apr 2007 07:37:08 -0000 1.10
@@ -14,7 +14,7 @@
// along with this program; if not, write to the Free Software
// Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-/* $Id: debugger.h,v 1.9 2007/03/15 22:39:53 strk Exp $ */
+/* $Id: debugger.h,v 1.10 2007/04/16 07:37:08 strk Exp $ */
#ifndef __DEBUGGER_H__
#define __DEBUGGER_H__
@@ -102,7 +102,7 @@
/// Are there any watchpoints set ?
int anyWatchPoints() { return _watchpoints.size(); };
/// Does the variable name match any watchpoints ?
- bool matchWatchPoint(std::string &var, watch_state_e state);
+ bool matchWatchPoint(const std::string &var, watch_state_e state);
/// Are there any breakpoints set ?
int anyBreakPoints() { return _breakpoints.size(); };
Index: server/vm/ASHandlers.cpp
===================================================================
RCS file: /sources/gnash/gnash/server/vm/ASHandlers.cpp,v
retrieving revision 1.92
retrieving revision 1.93
diff -u -b -r1.92 -r1.93
--- server/vm/ASHandlers.cpp 16 Apr 2007 07:10:45 -0000 1.92
+++ server/vm/ASHandlers.cpp 16 Apr 2007 07:37:08 -0000 1.93
@@ -14,7 +14,7 @@
// along with this program; if not, write to the Free Software
// Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-/* $Id: ASHandlers.cpp,v 1.92 2007/04/16 07:10:45 strk Exp $ */
+/* $Id: ASHandlers.cpp,v 1.93 2007/04/16 07:37:08 strk Exp $ */
#ifdef HAVE_CONFIG_H
#include "config.h"
@@ -994,8 +994,7 @@
// stack must be contain at least two items
thread.ensureStack(2);
- assert(env.top(1).to_string(&env).c_str());
- string name = env.top(1).to_string(&env);
+ const string& name = env.top(1).to_string(&env);
thread.setVariable(name, env.top(0));
IF_VERBOSE_ACTION (
@@ -1020,14 +1019,11 @@
thread.ensureStack(1); // target name
- //Vitaly: env.drop(1) remove object on which refers const char *
target_name
- //strk: shouldn't we use env.pop() instead ? No (see above comment)
- //const char * target_name = env.top(0).to_string(&env);
- assert(env.top(0).to_string(&env).c_str());
- string target_name = env.top(0).to_string(&env);
- env.drop(1); // pop the target name off the stack
+ const string& target_name = env.top(0).to_string(&env);
CommonSetTarget(env, target_name);
+
+ env.drop(1); // pop the target name off the stack
}
void
@@ -1995,11 +1991,11 @@
thread.ensureStack(1); // frame spec
- string target_frame = env.top(0).to_string(&env);
+ const string& target_frame = env.top(0).to_string(&env);
string target_path;
string frame_var;
- character * target;
+ character * target = NULL;
if( env.parse_path(target_frame, target_path, frame_var) )
{
target = env.find_target(target_path);
@@ -2010,7 +2006,7 @@
target = env.get_target();
}
- sprite_instance *target_sprite = target->to_movie();
+ sprite_instance *target_sprite = target ? target->to_movie() : NULL;
if(target_sprite)
{
target_sprite->call_frame_actions(frame_var);
@@ -2117,12 +2113,8 @@
return;
}
- as_value var = env.pop();
-
- bool ret = thread.delVariable(var.to_string(&env));
- env.push(as_value(ret));
-
- return;
+ // What's the difference between this and ActionDelete2 ??
+ env.top(0) = thread.delVariable(env.top(0).to_string(&env));
}
void
@@ -2147,13 +2139,15 @@
as_environment& env = thread.env;
thread.ensureStack(2); // value, var
- as_value value = env.pop();
- as_value varname = env.pop();
+ as_value& value = env.top(0);
+ as_value& varname = env.top(1);
thread.setLocalVariable(varname.to_string(&env), value);
IF_VERBOSE_ACTION (
log_action("-- set local var: %s = %s", varname.to_string(&env).c_str(),
value.to_debug_string().c_str());
);
+
+ env.drop(2);
}
void
@@ -2169,7 +2163,7 @@
//env.dump_stack();
// Let's consider it a as a string and lookup the function.
- as_value function = thread.getVariable(env.top(0).to_std_string(&env));
+ as_value function = thread.getVariable(env.top(0).to_string(&env));
if ( ! function.is_object() )
{
log_aserror("ActionCallFunction: %s is not an object",
env.top(0).to_string(&env).c_str());
@@ -2277,7 +2271,7 @@
thread.ensureStack(2); // classname, nargs
as_value val = env.pop();
- string classname = val.to_string(&env);;
+ const string& classname = val.to_string(&env);
IF_VERBOSE_ACTION (
log_action("---new object: %s",
@@ -2397,16 +2391,17 @@
int nmembers = (int) env.pop().to_number(&env);
- thread.ensureStack(nmembers); // members
+ thread.ensureStack(nmembers*2); // name, value for each member
boost::intrusive_ptr<as_object>
new_obj_ptr(init_object_instance().release());
// Set provided members
for (int i=0; i<nmembers; ++i) {
- as_value member_value = env.pop();
- string member_name = env.pop().to_string(&env);
+ as_value member_value = env.top(0);
+ string member_name = env.top(1).to_string(&env);
//new_obj_ptr->set_member(member_name, member_value);
thread.setObjectMember(*new_obj_ptr, member_name, member_value);
+ env.drop(2);
}
// @@ TODO
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Gnash-commit] gnash ChangeLog server/debugger.cpp server/debu...,
Sandro Santilli <=