+ (cd.hashCode() ^ Thread.currentThread().hashCode()) + '$' //
+ c.getName().replace('.', '$') //
: c.getName() + "$$" //
+ (cd.hashCode() ^ Thread.currentThread().hashCode()) + '$' //
+ cd.getClass().getName().replace('.', '$');
Bytecode y = new Bytecode();
y.head.setModifier(Mod2.PUBLIC | Mod2.FINAL | Mod2.SYNTHETIC);
y.head.setClassCi(y.cons.addClass(y.cons.addUcs(Class2.pathName(name))));
y.head.setSuperCi(y.cons.addClass(Clazz.class));
y.getProcs().addProc(Procedure.addCtor0(y.cons, y.head.getSuperCi(), Mod2.PUBLIC));
int classCi = y.cons.addClass(c);
if (es.length > 0)
{
int encsCi = y.cons.addField(F_encs);
int ableCi = y.cons.addProc(Property.M_encodable);
int nameCi = y.cons.addField(Property.F_name);
makeEncode(y, es, classCi, encsCi, ableCi, nameCi);
makeEncodeRefs(y, es, classCi, encsCi, ableCi);
}
try
{
c.getDeclaredConstructor(Array2.CLASSES0);
makeObject(y, classCi);
}
catch (NoSuchMethodException e)
{
}
if (ds.length > 0)
{
makeDecode(y, ds, classCi, 0);
makeDecode(y, ds, classCi, 1);
makeDecode(y, ds, classCi, 2);
}
Clazz z = Class2.<Clazz>load(Clazz.class.getClassLoader(), name, y.normalize()) //
.newInstance();
z.encs = es;
z.decs = dNames;
return z;
}