From 7f9a6626a0c49c3df0682028abf734dfd5cecf07 Mon Sep 17 00:00:00 2001 From: Joshua Spence Date: Sat, 7 Jun 2014 11:34:19 -0700 Subject: [PATCH] Mark some ActionScript methods as `final`. Summary: These methods shouldn't be overridden. Marking them as `final` will enforce this. Test Plan: N/A Reviewers: epriestley, #blessed_reviewers Reviewed By: epriestley, #blessed_reviewers Subscribers: epriestley, Korvin Differential Revision: https://secure.phabricator.com/D9411 --- support/aphlict/client/src/Aphlict.as | 9 ++++++--- support/aphlict/client/src/AphlictClient.as | 2 +- support/aphlict/client/src/AphlictMaster.as | 2 +- webroot/rsrc/swf/aphlict.swf | Bin 5470 -> 5472 bytes 4 files changed, 8 insertions(+), 5 deletions(-) diff --git a/support/aphlict/client/src/Aphlict.as b/support/aphlict/client/src/Aphlict.as index 592bbd4e54..5045a26821 100644 --- a/support/aphlict/client/src/Aphlict.as +++ b/support/aphlict/client/src/Aphlict.as @@ -27,15 +27,18 @@ package { this.send = new LocalConnection(); } - protected function externalInvoke(type:String, object:Object = null):void { + final protected function externalInvoke( + type:String, + object:Object = null):void { + ExternalInterface.call('JX.Aphlict.didReceiveEvent', type, object); } - protected function error(error:Error):void { + final protected function error(error:Error):void { this.externalInvoke('error', error.toString()); } - protected function log(message:String):void { + final protected function log(message:String):void { this.externalInvoke('log', message); } diff --git a/support/aphlict/client/src/AphlictClient.as b/support/aphlict/client/src/AphlictClient.as index 31105c67d1..a05c917873 100644 --- a/support/aphlict/client/src/AphlictClient.as +++ b/support/aphlict/client/src/AphlictClient.as @@ -5,7 +5,7 @@ package { import flash.utils.Timer; - public class AphlictClient extends Aphlict { + final public class AphlictClient extends Aphlict { /** * The connection name for this client. This will be used for the diff --git a/support/aphlict/client/src/AphlictMaster.as b/support/aphlict/client/src/AphlictMaster.as index ee07fe53e6..35d3cbb031 100644 --- a/support/aphlict/client/src/AphlictMaster.as +++ b/support/aphlict/client/src/AphlictMaster.as @@ -12,7 +12,7 @@ package { import vegas.strings.JSON; - public class AphlictMaster extends Aphlict { + final public class AphlictMaster extends Aphlict { /** * The pool of connected clients. diff --git a/webroot/rsrc/swf/aphlict.swf b/webroot/rsrc/swf/aphlict.swf index c6ffcdbd32023f5bc68a472d77e1b32c547e73a2..eaf4589a9c6a51e0c50e4ea121fa0871d9ed3499 100644 GIT binary patch delta 5443 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

M&rzB8JQX2UtMPrMeMg2e$s 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 delta 5443 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