読者です 読者をやめる 読者になる 読者になる

RetroWeb ~iPhoneとAndroidでハイブリッドゲームアプリ開発~

AIR for iOS+AndroidでSmartPhone Game ハイブリッドアプリ開発

最近作ったアプリ
100億本の抜け毛 100億匹のモナー DQ3闘技場アプリ モナーペット(進化)

AIRでArray push時の謎bug解消法

Adobe AIR AIR for Android AIR for iOS Flash

下記の珍百景バグですが、pushの引数を複数指定した際に、カンマが抜けていたため発生していました。なおArrayにArray(その中身はString)をpushした際に発生。

because missing array push method inner argument split commma.

typecheck com.test.arraybug::Data_GameOverTips/getGameOverTips()
  outer-scope = [global Object$ com.test.arraybug::Data_GameOverTips$]
                       [com.test.arraybug::Data_GameOverTips~[O] *[A]] {} ()
  0:debugfile "C:\ArrayBugTest.as"
                       [com.test.arraybug::Data_GameOverTips~[O] *[A]] {} ()
  3:debugline 7
                       [com.test.arraybug::Data_GameOverTips~[O] *[A]] {} ()
  5:getlocal0
                       [com.test.arraybug::Data_GameOverTips~[O] *[A]] {} (com.test.arraybug::Data_GameOverTips~[O])
  6:pushscope
                       [com.test.arraybug::Data_GameOverTips~[O] *[A]] {com.test.arraybug::Data_GameOverTips~[O]} ()
  7:debug
                       [com.test.arraybug::Data_GameOverTips~[O] *[A]] {com.test.arraybug::Data_GameOverTips~[O]} ()
  13:pushstring "array value1-1-1"
                       [com.test.arraybug::Data_GameOverTips~[O] *[A]] {com.test.arraybug::Data_GameOverTips~[O]} (String~[S])
  16:pushstring "array value1-1-2"
                       [com.test.arraybug::Data_GameOverTips~[O] *[A]] {com.test.arraybug::Data_GameOverTips~[O]} (String~[S] String~[S])
  19:debugline 9
                       [com.test.arraybug::Data_GameOverTips~[O] *[A]] {com.test.arraybug::Data_GameOverTips~[O]} (String~[S] String~[S])
  21:newarray 2
                       [com.test.arraybug::Data_GameOverTips~[O] *[A]] {com.test.arraybug::Data_GameOverTips~[O]} (Array~[O])
  23:pushstring "array value1-2-1"
                       [com.test.arraybug::Data_GameOverTips~[O] *[A]] {com.test.arraybug::Data_GameOverTips~[O]} (Array~[O] String~[S])
  26:pushstring "array value1-2-2"
                       [com.test.arraybug::Data_GameOverTips~[O] *[A]] {com.test.arraybug::Data_GameOverTips~[O]} (Array~[O] String~[S] String~[S])
  29:debugline 10
                       [com.test.arraybug::Data_GameOverTips~[O] *[A]] {com.test.arraybug::Data_GameOverTips~[O]} (Array~[O] String~[S] String~[S])
  31:newarray 2
                       [com.test.arraybug::Data_GameOverTips~[O] *[A]] {com.test.arraybug::Data_GameOverTips~[O]} (Array~[O] Array~[O])
  33:pushstring "array value1-3-1"
                       [com.test.arraybug::Data_GameOverTips~[O] *[A]] {com.test.arraybug::Data_GameOverTips~[O]} (Array~[O] Array~[O] String~[S])
  36:pushstring "array value1-3-2"
                       [com.test.arraybug::Data_GameOverTips~[O] *[A]] {com.test.arraybug::Data_GameOverTips~[O]} (Array~[O] Array~[O] String~[S] String~[S])
  39:debugline 11
                       [com.test.arraybug::Data_GameOverTips~[O] *[A]] {com.test.arraybug::Data_GameOverTips~[O]} (Array~[O] Array~[O] String~[S] String~[S])
  41:newarray 2
                       [com.test.arraybug::Data_GameOverTips~[O] *[A]] {com.test.arraybug::Data_GameOverTips~[O]} (Array~[O] Array~[O] Array~[O])
  43:newarray 3
                       [com.test.arraybug::Data_GameOverTips~[O] *[A]] {com.test.arraybug::Data_GameOverTips~[O]} (Array~[O])
  45:coerce Array
                       [com.test.arraybug::Data_GameOverTips~[O] *[A]] {com.test.arraybug::Data_GameOverTips~[O]} (Array~[O])
  47:setlocal1
                       [com.test.arraybug::Data_GameOverTips~[O] Array~[O]] {com.test.arraybug::Data_GameOverTips~[O]} ()
  48:debugline 14
                       [com.test.arraybug::Data_GameOverTips~[O] Array~[O]] {com.test.arraybug::Data_GameOverTips~[O]} ()
  50:getlex 5034
                       [com.test.arraybug::Data_GameOverTips~[O] Array~[O]] {com.test.arraybug::Data_GameOverTips~[O]} (com.test.arraybug::Vars$[O])
  53:getproperty {com.test.arraybug:Data_GameOverTips,public,Data_GameOverTips.as$459,com.test.arraybug,com.test.arraybug,http://adobe.com/AS3/2006/builtin,com.test.arraybug:Data_GameOverTips,com.test.arraybug:Data_GameOverTips}::_currentStage
                       [com.test.arraybug::Data_GameOverTips~[O] Array~[O]] {com.test.arraybug::Data_GameOverTips~[O]} (int[I])
  56:pushbyte 4
                       [com.test.arraybug::Data_GameOverTips~[O] Array~[O]] {com.test.arraybug::Data_GameOverTips~[O]} (int[I] int[I])
  58:ifngt 89
------------------------------------
MERGE FIRST B89:       [com.test.arraybug::Data_GameOverTips~[O] Array~[O]] {com.test.arraybug::Data_GameOverTips~[O]} ()
------------------------------------
                       [com.test.arraybug::Data_GameOverTips~[O] Array~[O]] {com.test.arraybug::Data_GameOverTips~[O]} ()
  62:debugline 15
                       [com.test.arraybug::Data_GameOverTips~[O] Array~[O]] {com.test.arraybug::Data_GameOverTips~[O]} ()
  64:getlocal1
                       [com.test.arraybug::Data_GameOverTips~[O] Array~[O]] {com.test.arraybug::Data_GameOverTips~[O]} (Array~[O])
  65:pushstring "array value2-1-1"
                       [com.test.arraybug::Data_GameOverTips~[O] Array~[O]] {com.test.arraybug::Data_GameOverTips~[O]} (Array~[O] String~[S])
  68:pushstring "array value2-1-2"
                       [com.test.arraybug::Data_GameOverTips~[O] Array~[O]] {com.test.arraybug::Data_GameOverTips~[O]} (Array~[O] String~[S] String~[S])
  71:debugline 16
                       [com.test.arraybug::Data_GameOverTips~[O] Array~[O]] {com.test.arraybug::Data_GameOverTips~[O]} (Array~[O] String~[S] String~[S])
  73:newarray 2
                       [com.test.arraybug::Data_GameOverTips~[O] Array~[O]] {com.test.arraybug::Data_GameOverTips~[O]} (Array~[O] Array~[O])
  75:pushstring "array value2-2-1"
                       [com.test.arraybug::Data_GameOverTips~[O] Array~[O]] {com.test.arraybug::Data_GameOverTips~[O]} (Array~[O] Array~[O] String~[S])
  78:pushstring "array value2-2-2"
                       [com.test.arraybug::Data_GameOverTips~[O] Array~[O]] {com.test.arraybug::Data_GameOverTips~[O]} (Array~[O] Array~[O] String~[S] String~[S])
  81:debugline 17
                       [com.test.arraybug::Data_GameOverTips~[O] Array~[O]] {com.test.arraybug::Data_GameOverTips~[O]} (Array~[O] Array~[O] String~[S] String~[S])
  83:newarray 2
                       [com.test.arraybug::Data_GameOverTips~[O] Array~[O]] {com.test.arraybug::Data_GameOverTips~[O]} (Array~[O] Array~[O] Array~[O])
  85:callpropvoid {com.test.arraybug:Data_GameOverTips,public,Data_GameOverTips.as$459,com.test.arraybug,com.test.arraybug,http://adobe.com/AS3/2006/builtin,com.test.arraybug:Data_GameOverTips,com.test.arraybug:Data_GameOverTips}::push 2
                       [com.test.arraybug::Data_GameOverTips~[O] Array~[O]] {com.test.arraybug::Data_GameOverTips~[O]} ()
------------------------------------
MERGE CURRENT 89:      [com.test.arraybug::Data_GameOverTips~[O] Array~[O]] {com.test.arraybug::Data_GameOverTips~[O]} ()
MERGE TARGET B89:      [com.test.arraybug::Data_GameOverTips~[O] Array~[O]] {com.test.arraybug::Data_GameOverTips~[O]} ()
AFTER MERGE B89:       [com.test.arraybug::Data_GameOverTips~[O] Array~[O]] {com.test.arraybug::Data_GameOverTips~[O]} ()
------------------------------------
B89:                   [com.test.arraybug::Data_GameOverTips~[O] Array~[O]] {com.test.arraybug::Data_GameOverTips~[O]} ()
  89:debugline 20
                       [com.test.arraybug::Data_GameOverTips~[O] Array~[O]] {com.test.arraybug::Data_GameOverTips~[O]} ()
  91:getlex 5034
                       [com.test.arraybug::Data_GameOverTips~[O] Array~[O]] {com.test.arraybug::Data_GameOverTips~[O]} (com.test.arraybug::Vars$[O])
  94:getproperty {com.test.arraybug:Data_GameOverTips,public,Data_GameOverTips.as$459,com.test.arraybug,com.test.arraybug,http://adobe.com/AS3/2006/builtin,com.test.arraybug:Data_GameOverTips,com.test.arraybug:Data_GameOverTips}::_currentStage
                       [com.test.arraybug::Data_GameOverTips~[O] Array~[O]] {com.test.arraybug::Data_GameOverTips~[O]} (int[I])
  97:pushbyte 8
                       [com.test.arraybug::Data_GameOverTips~[O] Array~[O]] {com.test.arraybug::Data_GameOverTips~[O]} (int[I] int[I])
  99:ifngt 141
------------------------------------
MERGE FIRST B141:      [com.test.arraybug::Data_GameOverTips~[O] Array~[O]] {com.test.arraybug::Data_GameOverTips~[O]} ()
------------------------------------
                       [com.test.arraybug::Data_GameOverTips~[O] Array~[O]] {com.test.arraybug::Data_GameOverTips~[O]} ()
  103:debugline 21
                       [com.test.arraybug::Data_GameOverTips~[O] Array~[O]] {com.test.arraybug::Data_GameOverTips~[O]} ()
  105:getlocal1
                       [com.test.arraybug::Data_GameOverTips~[O] Array~[O]] {com.test.arraybug::Data_GameOverTips~[O]} (Array~[O])
  106:pushstring "array value3-1-1"
                       [com.test.arraybug::Data_GameOverTips~[O] Array~[O]] {com.test.arraybug::Data_GameOverTips~[O]} (Array~[O] String~[S])
  109:pushstring "array value3-1-2"
                       [com.test.arraybug::Data_GameOverTips~[O] Array~[O]] {com.test.arraybug::Data_GameOverTips~[O]} (Array~[O] String~[S] String~[S])
  112:debugline 22
                       [com.test.arraybug::Data_GameOverTips~[O] Array~[O]] {com.test.arraybug::Data_GameOverTips~[O]} (Array~[O] String~[S] String~[S])
  114:newarray 2
                       [com.test.arraybug::Data_GameOverTips~[O] Array~[O]] {com.test.arraybug::Data_GameOverTips~[O]} (Array~[O] Array~[O])
  116:pushstring "array value3-2-1"
                       [com.test.arraybug::Data_GameOverTips~[O] Array~[O]] {com.test.arraybug::Data_GameOverTips~[O]} (Array~[O] Array~[O] String~[S])
  119:pushstring "array value3-2-2"
                       [com.test.arraybug::Data_GameOverTips~[O] Array~[O]] {com.test.arraybug::Data_GameOverTips~[O]} (Array~[O] Array~[O] String~[S] String~[S])
  122:debugline 23
                       [com.test.arraybug::Data_GameOverTips~[O] Array~[O]] {com.test.arraybug::Data_GameOverTips~[O]} (Array~[O] Array~[O] String~[S] String~[S])
  124:newarray 2
                       [com.test.arraybug::Data_GameOverTips~[O] Array~[O]] {com.test.arraybug::Data_GameOverTips~[O]} (Array~[O] Array~[O] Array~[O])
  126:pushstring "array value3-3-1"
                       [com.test.arraybug::Data_GameOverTips~[O] Array~[O]] {com.test.arraybug::Data_GameOverTips~[O]} (Array~[O] Array~[O] Array~[O] String~[S])
  129:pushstring "array value3-3-2"
                       [com.test.arraybug::Data_GameOverTips~[O] Array~[O]] {com.test.arraybug::Data_GameOverTips~[O]} (Array~[O] Array~[O] Array~[O] String~[S] String~[S])
  132:debugline 24
                       [com.test.arraybug::Data_GameOverTips~[O] Array~[O]] {com.test.arraybug::Data_GameOverTips~[O]} (Array~[O] Array~[O] Array~[O] String~[S] String~[S])
  134:getproperty {com.test.arraybug:Data_GameOverTips,public,Data_GameOverTips.as$459,com.test.arraybug,com.test.arraybug,http://adobe.com/AS3/2006/builtin,com.test.arraybug:Data_GameOverTips,com.test.arraybug:Data_GameOverTips}::[]
                       [com.test.arraybug::Data_GameOverTips~[O] Array~[O]] {com.test.arraybug::Data_GameOverTips~[O]} (Array~[O] Array~[O] Array~[O] *[A])
  137:callpropvoid {com.test.arraybug:Data_GameOverTips,public,Data_GameOverTips.as$459,com.test.arraybug,com.test.arraybug,http://adobe.com/AS3/2006/builtin,com.test.arraybug:Data_GameOverTips,com.test.arraybug:Data_GameOverTips}::push 2
                       [com.test.arraybug::Data_GameOverTips~[O] Array~[O]] {com.test.arraybug::Data_GameOverTips~[O]} (Array~[O])
------------------------------------
MERGE CURRENT 141:     [com.test.arraybug::Data_GameOverTips~[O] Array~[O]] {com.test.arraybug::Data_GameOverTips~[O]} (Array~[O])
MERGE TARGET B141:     [com.test.arraybug::Data_GameOverTips~[O] Array~[O]] {com.test.arraybug::Data_GameOverTips~[O]} ()