[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Gnash-commit] gnash ./ChangeLog server/action.cpp
From: |
Michael Carlson |
Subject: |
[Gnash-commit] gnash ./ChangeLog server/action.cpp |
Date: |
Sat, 04 Feb 2006 09:14:25 +0000 |
CVSROOT: /sources/gnash
Module name: gnash
Branch:
Changes by: Michael Carlson <address@hidden> 06/02/04 09:14:25
Modified files:
. : ChangeLog
server : action.cpp
Log message:
Fix SetTargetDynamic to work as Alexis' SWF reference says it should
This is almost the same fix as what I did with SetTarget a few days ago.
CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/gnash/gnash/ChangeLog.diff?tr1=1.81&tr2=1.82&r1=text&r2=text
http://cvs.savannah.gnu.org/viewcvs/gnash/gnash/server/action.cpp.diff?tr1=1.17&tr2=1.18&r1=text&r2=text
Patches:
Index: gnash/ChangeLog
diff -u gnash/ChangeLog:1.81 gnash/ChangeLog:1.82
--- gnash/ChangeLog:1.81 Sat Feb 4 07:51:34 2006
+++ gnash/ChangeLog Sat Feb 4 09:14:25 2006
@@ -16,6 +16,7 @@
2006-02-04 Michael Carlson <address@hidden>
* server/Date.cpp: Clean up Date, and implement getDate()
+ * server/action.cpp: Fix SetTargetDynamic opcode
2006-02-03 Rob Savoye <address@hidden>
Index: gnash/server/action.cpp
diff -u gnash/server/action.cpp:1.17 gnash/server/action.cpp:1.18
--- gnash/server/action.cpp:1.17 Fri Feb 3 22:49:52 2006
+++ gnash/server/action.cpp Sat Feb 4 09:14:25 2006
@@ -1849,14 +1849,21 @@
}
case SWF::ACTION_SETTARGETEXPRESSION: // set
target expression
{
- as_object_interface* target_object =
env->top(0).to_object();
+ const char * target_name =
env->top(0).to_string();
- IF_VERBOSE_ACTION(log_msg("--
ActionSetTarget2: %s (%d)",
- ((character
*) target_object)->m_name.c_str(),
- ((character
*) target_object)->m_id));
-
- movie* target =
env->find_target(target_object);
- env->set_target (target);
+ if (target_name[0] == 0) {
env->set_target(original_target); }
+ else {
+ movie * cha =
env->find_target((tu_string)target_name);
+ if (cha == NULL)
+ {
+
IF_VERBOSE_ACTION(log_error(
+ "Couldn't find
movie \"%s\" to set target to!"
+ " Not setting
target at all...",
+ (const char
*)target_name));
+ }
+ else
+ env->set_target(cha);
+ }
break;
}
case SWF::ACTION_STRINGCONCAT: // string concat
@@ -2738,7 +2745,8 @@
case SWF::ACTION_GOTOLABEL: // go to
labeled frame, goto_frame_lbl
{
char* frame_label = (char*)
&m_buffer[pc + 3];
-
env->get_target()->goto_labeled_frame(frame_label);
+ movie *target = env->get_target();
+ target->goto_labeled_frame(frame_label);
break;
}
- [Gnash-commit] gnash ./ChangeLog server/action.cpp, Michael Carlson, 2006/02/02
- [Gnash-commit] gnash ./ChangeLog server/action.cpp, Michael Carlson, 2006/02/03
- [Gnash-commit] gnash ./ChangeLog server/action.cpp,
Michael Carlson <=
- [Gnash-commit] gnash ./ChangeLog server/action.cpp, Michael Carlson, 2006/02/04
- [Gnash-commit] gnash ./ChangeLog server/action.cpp, strk, 2006/02/06
- [Gnash-commit] gnash ./ChangeLog server/action.cpp, Michael Carlson, 2006/02/08
- [Gnash-commit] gnash ./ChangeLog server/action.cpp, Michael Carlson, 2006/02/09