[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 16:01:25 +0000 |
CVSROOT: /sources/gnash
Module name: gnash
Branch:
Changes by: Michael Carlson <address@hidden> 06/02/04 16:01:25
Modified files:
. : ChangeLog
server : action.cpp
Log message:
Fix SetTarget code up a little further.
For now, I'm assuming SetTarget("") works exactly like SetTarget("/") -
both go to the root movie. I've added an appropriate TODO comment.
CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/gnash/gnash/ChangeLog.diff?tr1=1.85&tr2=1.86&r1=text&r2=text
http://cvs.savannah.gnu.org/viewcvs/gnash/gnash/server/action.cpp.diff?tr1=1.19&tr2=1.20&r1=text&r2=text
Patches:
Index: gnash/ChangeLog
diff -u gnash/ChangeLog:1.85 gnash/ChangeLog:1.86
--- gnash/ChangeLog:1.85 Sat Feb 4 15:32:06 2006
+++ gnash/ChangeLog Sat Feb 4 16:01:25 2006
@@ -23,7 +23,8 @@
2006-02-04 Michael Carlson <address@hidden>
* server/Date.cpp: Clean up Date, and implement getDate()
- * server/action.cpp: Fix SetTargetDynamic opcode
+ * server/action.cpp: Fix SetTargetDynamic opcode and further fix
+ SetTarget opcode
2006-02-03 Rob Savoye <address@hidden>
Index: gnash/server/action.cpp
diff -u gnash/server/action.cpp:1.19 gnash/server/action.cpp:1.20
--- gnash/server/action.cpp:1.19 Sat Feb 4 15:32:06 2006
+++ gnash/server/action.cpp Sat Feb 4 16:01:25 2006
@@ -1711,10 +1711,12 @@
break;
case SWF::ACTION_PLAY: // action play
+ log_msg("WOO:PLAYING!\n");
env->get_target()->set_play_state(movie::PLAY);
break;
case SWF::ACTION_STOP: // action stop
+ log_msg("WOO:STOPPING!\n");
env->get_target()->set_play_state(movie::STOP);
break;
@@ -1850,20 +1852,26 @@
case SWF::ACTION_SETTARGETEXPRESSION: // set
target expression
{
const char * target_name =
env->top(0).to_string();
+ env->drop(1); // pop the target name
off the stack
+ movie *new_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);
+ // if the string is blank, we set
target to the root movie
+ // TODO - double check this is correct?
+ if (target_name[0] == '\0')
+ new_target =
env->find_target((tu_string)"/");
+ else
+ new_target =
env->find_target((tu_string)target_name);
+
+ if (new_target == 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(new_target);
+
break;
}
case SWF::ACTION_STRINGCONCAT: // string concat
@@ -2235,34 +2243,8 @@
}
case SWF::ACTION_INITOBJECT: // declare
object
{
- //
- // SWFACTION_PUSH
- // [000] Constant: 1 "obj"
- // [001] Constant: 0 "member" <--
we handle up to here
- // [002] Integer: 1
- // [003] Integer: 1
- // SWFACTION_INITOBJECT
-
- int nmembers = (int)
env->pop().to_number();
-
- smart_ptr<as_object> new_obj_ptr(new
as_object); // won't this be leaking ?
-
- // Set provided members
- for (int i=0; i<nmembers; ++i) {
- as_value member_value =
env->pop();
- tu_stringi member_name =
env->pop().to_tu_stringi();
-
new_obj_ptr->set_member(member_name, member_value);
- }
-
// @@ TODO
- //log_error("checkme opcode: %02X\n",
action_id);
-
- as_value new_obj;
-
new_obj.set_as_object_interface(new_obj_ptr.get_ptr());
-
- //env->drop(nmembers*2);
- env->push(new_obj);
-
+ log_error("todo opcode: %02X\n",
action_id);
break;
}
case SWF::ACTION_TYPEOF: // type of
@@ -2752,19 +2734,25 @@
{
// Change the movie we're working on.
const char* target_name = (const char*)
&m_buffer[pc + 3];
- 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);
+ movie *new_target;
+
+ // if the string is blank, we set
target to the root movie
+ // TODO - double check this is correct?
+ if (target_name[0] == '\0')
+ new_target =
env->find_target((tu_string)"/");
+ else
+ new_target =
env->find_target((tu_string)target_name);
+
+ if (new_target == 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(new_target);
+
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, 2006/02/04
- [Gnash-commit] gnash ./ChangeLog server/action.cpp,
Michael Carlson <=
- [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