Forums » Blitzableiter-Forum »
MultiName-parsing error
Hi there!
I'm not able to create a new Bug-Ticket, so I'm posting this here.
There seems to be a problem with MultiName of kind Vector. Vector is not documented in the pdfs, but it can be found in the flexsdk at: http://opensource.adobe.com/svn/opensource/flex/sdk/trunk/modules/swfutils/src/java/flash/swf/tools/AbcPrinter.java
This is the extracted MultiName-parser:
@void printMultiNameConstantPool()
{
long n = readU32();
printOffset();
out.println(n + " MultiName Constant Pool Entries");
multiNameConstants = new MultiName[(n > 0) ? (int)n : 1];
multiNameConstants0 = new MultiName();
for (int i = 1; i < n; i++)
{
printOffset();
byte b = abc[offset++];
multiNameConstants[i] = new MultiName();
multiNameConstants[i].kind = b;
switch (b)
{
case 0x07: // QName
case 0x0D:
multiNameConstants[i].long1 = (int)readU32();
multiNameConstants[i].long2 = (int)readU32();
break;
case 0x0F: // RTQName
case 0x10:
multiNameConstants[i].long1 = (int)readU32();
break;
case 0x11: // RTQNameL
case 0x12:
break;
case 0x13: // NameL
case 0x14:
break;
case 0x09:
case 0x0E:
multiNameConstants[i].long1 = (int)readU32();
multiNameConstants[i].long2 = (int)readU32();
break;
case 0x1B:
case 0x1C:
multiNameConstants[i].long1 = (int)readU32();
break;
case 0x1D:
int nameIndex = (int)readU32();
MultiName mn = multiNameConstants[nameIndex];
int count = (int)readU32();
MultiName types[] = new MultiName[count];
for (int t = 0; t < count; t++)
{
int typeIndex = (int)readU32();
types[t] = multiNameConstants[typeIndex];
}
multiNameConstants[i].typeName = mn;
multiNameConstants[i].types = types;
}
out.println(multiNameConstants[i]);
}
}@
Kind Regards,
Daniel