flex-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Christofer Dutz <christofer.d...@c-ware.de>
Subject [FLEXJS] Probably found the reason for some of my problems ...
Date Sat, 07 May 2016 16:33:56 GMT
Ok ... in a final struggle to at least have something to show at my talk at ApacheCon I dug
really deep into the compiler and noticed one thing:


There's a class called: JSSharedData, which contains a set of public static variables for
containing the state of a compilation (I guess). The problem is that the values inside are
set by the constructors of the compilers ... well actually just MXMLJSC but as COMPJSC extends
from that also from that. In the FlexJSToolGroup I create an instance of any tool the group
has. First one of COMPJSC and then MXMLJSC. So when creating the MXMLJSC instance all the
static global variables correctly initialized by COMPJSC are overwritten by those of MXMLJSC.
The reason I didn't notice this, was that in my last attempt I only used MXMLJSC in my examples
from Flexmojos.


This "one state that's shared between compiler instances" is really bad as the VM isn't destroyed
during the build, this means that eventually settings from one module could leak to another
module. I guess it would be absolutely impossible to track down problems like this. "public
static"-Variables for maintaining the State of an instance of anything is super-duper-ultra-bad
... we have to change this.


Chris

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message