[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Gnash-commit] gnash ChangeLog server/StringPredicates.h serve...
From: |
Benjamin Wolsey |
Subject: |
[Gnash-commit] gnash ChangeLog server/StringPredicates.h serve... |
Date: |
Fri, 25 Apr 2008 15:28:54 +0000 |
CVSROOT: /sources/gnash
Module name: gnash
Changes by: Benjamin Wolsey <bwy> 08/04/25 15:28:54
Modified files:
. : ChangeLog
server : StringPredicates.h
server/asobj : Global.cpp Stage.cpp Stage.h
testsuite/swfdec: PASSING
Log message:
* server/asobj/Stage.{cpp,h}: register ASnative methods
separately,
drop methods from Stage class, reduce reliance on Stage class
generally (needs to go completely for ASnative functions, as
it's not
necessarily initialized in time). Case insensitive setters
(fixes
part of swfdec scalemode test).
* server/asobj/Global.cpp: register Stage ASnative functions
from SWF5
(fixes another part of swfdec test).
* server/StringPredicates.h: drop separate length test
(StringNoCaseEqual).
* testsuite/swfdec/PASSING: scalemode tests pass.
CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/gnash/ChangeLog?cvsroot=gnash&r1=1.6395&r2=1.6396
http://cvs.savannah.gnu.org/viewcvs/gnash/server/StringPredicates.h?cvsroot=gnash&r1=1.14&r2=1.15
http://cvs.savannah.gnu.org/viewcvs/gnash/server/asobj/Global.cpp?cvsroot=gnash&r1=1.119&r2=1.120
http://cvs.savannah.gnu.org/viewcvs/gnash/server/asobj/Stage.cpp?cvsroot=gnash&r1=1.43&r2=1.44
http://cvs.savannah.gnu.org/viewcvs/gnash/server/asobj/Stage.h?cvsroot=gnash&r1=1.20&r2=1.21
http://cvs.savannah.gnu.org/viewcvs/gnash/testsuite/swfdec/PASSING?cvsroot=gnash&r1=1.135&r2=1.136
Patches:
Index: ChangeLog
===================================================================
RCS file: /sources/gnash/gnash/ChangeLog,v
retrieving revision 1.6395
retrieving revision 1.6396
diff -u -b -r1.6395 -r1.6396
--- ChangeLog 25 Apr 2008 15:07:45 -0000 1.6395
+++ ChangeLog 25 Apr 2008 15:28:52 -0000 1.6396
@@ -1,3 +1,16 @@
+2008-04-25 Benjamin Wolsey <address@hidden>
+
+ * server/asobj/Stage.{cpp,h}: register ASnative methods separately,
+ drop methods from Stage class, reduce reliance on Stage class
+ generally (needs to go completely for ASnative functions, as it's not
+ necessarily initialized in time). Case insensitive setters (fixes
+ part of swfdec scalemode test).
+ * server/asobj/Global.cpp: register Stage ASnative functions from SWF5
+ (fixes another part of swfdec test).
+ * server/StringPredicates.h: drop separate length test
+ (StringNoCaseEqual).
+ * testsuite/swfdec/PASSING: scalemode tests pass.
+
2008-04-25 Sandro Santilli <address@hidden>
* gui/gui.cpp (updateStageMatrix): don't try to tell a NULL renderer
Index: server/StringPredicates.h
===================================================================
RCS file: /sources/gnash/gnash/server/StringPredicates.h,v
retrieving revision 1.14
retrieving revision 1.15
diff -u -b -r1.14 -r1.15
--- server/StringPredicates.h 27 Mar 2008 10:50:14 -0000 1.14
+++ server/StringPredicates.h 25 Apr 2008 15:28:53 -0000 1.15
@@ -60,7 +60,6 @@
public:
bool operator() (const std::string& a, const std::string& b) const
{
- if ( a.length() != b.length() ) return false;
return boost::iequals(a, b);
}
};
Index: server/asobj/Global.cpp
===================================================================
RCS file: /sources/gnash/gnash/server/asobj/Global.cpp,v
retrieving revision 1.119
retrieving revision 1.120
diff -u -b -r1.119 -r1.120
--- server/asobj/Global.cpp 24 Apr 2008 13:28:42 -0000 1.119
+++ server/asobj/Global.cpp 25 Apr 2008 15:28:53 -0000 1.120
@@ -601,6 +601,7 @@
// TODO: When should these be registered?
registerSystemNative(*this);
+ registerStageNative(*this);
vm.registerNative(as_global_trace, 100, 4);
init_member("trace", vm.getNative(100, 4));
Index: server/asobj/Stage.cpp
===================================================================
RCS file: /sources/gnash/gnash/server/asobj/Stage.cpp,v
retrieving revision 1.43
retrieving revision 1.44
diff -u -b -r1.43 -r1.44
--- server/asobj/Stage.cpp 24 Apr 2008 14:06:26 -0000 1.43
+++ server/asobj/Stage.cpp 25 Apr 2008 15:28:53 -0000 1.44
@@ -38,13 +38,30 @@
namespace gnash {
-as_value stage_scalemode_getset(const fn_call& fn);
-as_value stage_align_getset(const fn_call& fn);
-as_value stage_showMenu_getset(const fn_call& fn);
-as_value stage_width_getset(const fn_call& fn);
-as_value stage_height_getset(const fn_call& fn);
-as_value stage_displaystate_getset(const fn_call& fn);
+static as_value stage_scalemode_getset(const fn_call& fn);
+static as_value stage_align_getset(const fn_call& fn);
+static as_value stage_showMenu_getset(const fn_call& fn);
+static as_value stage_width_getset(const fn_call& fn);
+static as_value stage_height_getset(const fn_call& fn);
+static as_value stage_displaystate_getset(const fn_call& fn);
+static const char* getScaleModeString(movie_root::ScaleMode sm);
+static const char* getDisplayStateString(Stage::DisplayState ds);
+void registerStageNative(as_object& o)
+{
+ VM& vm = o.getVM();
+
+ vm.registerNative(stage_scalemode_getset, 666, 1);
+ vm.registerNative(stage_scalemode_getset, 666, 2);
+ vm.registerNative(stage_align_getset, 666, 3);
+ vm.registerNative(stage_align_getset, 666, 4);
+ vm.registerNative(stage_width_getset, 666, 5);
+ vm.registerNative(stage_width_getset, 666, 6);
+ vm.registerNative(stage_height_getset, 666, 7);
+ vm.registerNative(stage_height_getset, 666, 8);
+ vm.registerNative(stage_showMenu_getset, 666, 9);
+ vm.registerNative(stage_showMenu_getset, 666, 10);
+}
static void
attachStageInterface(as_object& o)
@@ -57,49 +74,23 @@
as_c_function_ptr getset;
- // Stage.scaleMode getter-setter
getset = stage_scalemode_getset;
- if ( version > 5)
- {
- vm.registerNative(getset, 666, 1);
- vm.registerNative(getset, 666, 2);
- }
o.init_property("scaleMode", getset, getset);
// Stage.align getter-setter
getset = stage_align_getset;
- if ( version > 5)
- {
- vm.registerNative(getset, 666, 3);
- vm.registerNative(getset, 666, 4);
- }
o.init_property("align", getset, getset);
// Stage.width getter-setter
getset = stage_width_getset;
- if ( version > 5)
- {
- vm.registerNative(getset, 666, 5);
- vm.registerNative(getset, 666, 6);
- }
o.init_property("width", getset, getset);
// Stage.height getter-setter
getset = stage_height_getset;
- if ( version > 5)
- {
- vm.registerNative(getset, 666, 7);
- vm.registerNative(getset, 666, 8);
- }
o.init_property("height", getset, getset);
// Stage.showMenu getter-setter
getset = stage_showMenu_getset;
- if ( version > 5)
- {
- vm.registerNative(getset, 666, 9);
- vm.registerNative(getset, 666, 10);
- }
o.init_property("showMenu", getset, getset);
getset = stage_displaystate_getset;
@@ -142,34 +133,6 @@
callMethod(NSV::PROP_BROADCAST_MESSAGE, "onResize");
}
-/// Expected behaviour is that the original movie size is aways returned
-/// as long as scaling is allowed.
-
-const char*
-Stage::getDisplayStateString()
-{
- static const char* displayStateName[] = {
- "normal",
- "fullScreen" };
-
- return displayStateName[_displayState];
-}
-
-
-const char*
-Stage::getScaleModeString()
-{
- static const char* modeName[] = {
- "showAll",
- "noScale",
- "exactFit",
- "noBorder" };
-
- movie_root& m = VM::get().getRoot();
-
- return modeName[m.getScaleMode()];
-}
-
void
Stage::setDisplayState(DisplayState state)
@@ -231,22 +194,51 @@
}
-as_value stage_scalemode_getset(const fn_call& fn)
+
+const char*
+getDisplayStateString(Stage::DisplayState ds)
{
- boost::intrusive_ptr<Stage> stage = ensureType<Stage>(fn.this_ptr);
+ static const char* displayStateName[] = {
+ "normal",
+ "fullScreen" };
+
+ return displayStateName[ds];
+}
+
+
+const char*
+getScaleModeString(movie_root::ScaleMode sm)
+{
+ static const char* modeName[] = {
+ "showAll",
+ "noScale",
+ "exactFit",
+ "noBorder" };
+
+ return modeName[sm];
+}
+
+
+as_value
+stage_scalemode_getset(const fn_call& fn)
+{
+ const movie_root& m = VM::get().getRoot();
if ( fn.nargs == 0 ) // getter
{
- return as_value(stage->getScaleModeString());
+ return as_value(getScaleModeString(m.getScaleMode()));
}
else // setter
{
movie_root::ScaleMode mode = movie_root::showAll;
const std::string& str = fn.arg(0).to_string();
- if ( str == "noScale" ) mode = movie_root::noScale;
- else if ( str == "exactFit" ) mode = movie_root::exactFit;
- else if ( str == "noBorder" ) mode = movie_root::noBorder;
+
+ StringNoCaseEqual noCaseCompare;
+
+ if ( noCaseCompare(str, "noScale") ) mode = movie_root::noScale;
+ else if ( noCaseCompare(str, "exactFit") ) mode =
movie_root::exactFit;
+ else if ( noCaseCompare(str, "noBorder") ) mode =
movie_root::noBorder;
movie_root& m = VM::get().getRoot();
@@ -369,7 +361,7 @@
if ( fn.nargs == 0 ) // getter
{
- return as_value(stage->getDisplayStateString());
+ return
as_value(getDisplayStateString(stage->getDisplayState()));
}
else // setter
{
Index: server/asobj/Stage.h
===================================================================
RCS file: /sources/gnash/gnash/server/asobj/Stage.h,v
retrieving revision 1.20
retrieving revision 1.21
diff -u -b -r1.20 -r1.21
--- server/asobj/Stage.h 24 Apr 2008 08:02:38 -0000 1.20
+++ server/asobj/Stage.h 25 Apr 2008 15:28:53 -0000 1.21
@@ -54,18 +54,6 @@
/// Notify all listeners about a resize event
void notifyResize();
- /// \brief
- /// Return the string representation for current
- /// scale mode.
- //
- /// Valid values are:
- /// - showAll
- /// - noBorder
- /// - exactFit
- /// - noScale
- ///
- const char* getScaleModeString();
-
/// Get present align mode
const std::string& getAlignMode() const { return _alignMode; }
@@ -75,7 +63,8 @@
/// Set display state
void setDisplayState(DisplayState state);
- const char* getDisplayStateString();
+ /// Set display state
+ DisplayState getDisplayState() const { return _displayState; }
private:
@@ -84,6 +73,8 @@
DisplayState _displayState;
};
+/// Register native functions with the VM.
+void registerStageNative(as_object& o);
/// Initialize the global Stage class
void stage_class_init(as_object& global);
Index: testsuite/swfdec/PASSING
===================================================================
RCS file: /sources/gnash/gnash/testsuite/swfdec/PASSING,v
retrieving revision 1.135
retrieving revision 1.136
diff -u -b -r1.135 -r1.136
--- testsuite/swfdec/PASSING 25 Apr 2008 13:56:09 -0000 1.135
+++ testsuite/swfdec/PASSING 25 Apr 2008 15:28:53 -0000 1.136
@@ -665,6 +665,10 @@
same-argument-name-6.swf:0814b0f0acc2abdc94f95972ec4db704
same-argument-name-7.swf:a8db16910cb00b86ee7622e2d878ddc0
same-argument-name-8.swf:fc161dde1c7da36faa9478e3908c45e3
+scalemode-5.swf:e53b1236f91f92be286c42fc22f3cabc
+scalemode-6.swf:26e22225bb67b386c52b1a0eef9e0d2a
+scalemode-7.swf:deceeecf711eb37feb788cf464d7c86f
+scalemode-8.swf:e22dcce27871ae2d5a4b53c4955b44cf
scope2.swf:4783478ce98b56c9b34e1a5ee78e2860
scope-chain-did-you-understand-5.swf:326fc05bde096a72bec25336e67e9e97
scope-chain-did-you-understand-6.swf:952f5f91c44b10fb23727ad72d62459d
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Gnash-commit] gnash ChangeLog server/StringPredicates.h serve...,
Benjamin Wolsey <=