Re: BCEL newbie question
Jacob Kjome <[email protected]> Mon, 19 Sep 2005 21:46:32 -0500
| Newsgroups | gmane.comp.jakarta.bcel.user |
|---|---|
| Message-ID | <[email protected]> |
Trying again. Any takers? Here's a link to the beginning of the thread for better readability.... http://www.mail-archive.com/[email protected]/msg00780.html Jake At 12:24 AM 9/3/2005 -0500, you wrote: > >Is there someone that can comment on this? I'm sure I'm just missing >something small. But even though it is small, I'm still dead in the water >until I get it figured out. > >thanks, > >Jake > >At 09:59 AM 8/27/2005 -0500, you wrote: > > > >How do I get this... > > > >private void createMethod_11() { > > InstructionList il = new InstructionList(); > > MethodGen method = new MethodGen(ACC_STATIC | ACC_FINAL, > >Type.VOID, Type.NO_ARGS, new String[] {}, "<clinit>", > > className, il, _cp); > > il.append(_factory.createFieldAccess(className, "class$L" + > >className.replace('.', '$'), new ObjectType( > > "java.lang.Class"), Constants.GETSTATIC)); > > il.append(_factory.createFieldAccess(className, > >"XMLC_GENERATED_CLASS", > > new ObjectType("java.lang.Class"), Constants.PUTSTATIC)); > > il.append(_factory.createFieldAccess(className, > > > >"class$Lorg$enhydra$xml$xmlc$dom$xerces$XercesHTMLDomFactory", > > > >new ObjectType("java.lang.Class"), > > Constants.GETSTATIC)); > > > >il.append(_factory.createInvoke("org.enhydra.xml.xmlc.dom.XMLCDomFactoryCa >che", > > "getFactory", new > >ObjectType("org.enhydra.xml.xmlc.dom.XMLCDomFactory"), new Type[] { new > >ObjectType( > > "java.lang.Class") }, Constants.INVOKESTATIC)); > > il.append(_factory.createFieldAccess(className, "fDOMFactory", new > >ObjectType( > > "org.enhydra.xml.xmlc.dom.XMLCDomFactory"), > >Constants.PUTSTATIC)); > > il.append(InstructionFactory.createReturn(Type.VOID)); > > method.setMaxStack(); > > method.setMaxLocals(); > > _cg.addMethod(method.getMethod()); > > il.dispose(); > > } > > > >to generate this... > > > > static { > > XMLC_GENERATED_CLASS = $$XMLC_GENERATED$$.dyna.dyna01.html.class; > > fDOMFactory = > >XMLCDomFactoryCache.getFactory(org.enhydra.xml.xmlc.dom.xerces.XercesHTM LDom > >Factory.class); > > } > > > >currently, it is generating this... > > > > static final { > > XMLC_GENERATED_CLASS = class$L$$XMLC_GENERATED$$$dyna$dyna01$html; > > fDOMFactory = > >XMLCDomFactoryCache.getFactory(class$Lorg$enhydra$xml$xmlc$dom$xerces$Xe rces > >HTMLDomFactory); > > } > > > > > >The class was originally generated by the BCELifier (by someone else on our > >team) based on an example generated XMLC ( http://xmlc.objectweb.org/ ) > >class. We tweaked it for our purposes, but the code in the block above > >never really worked so we had it commented out (I also removed bits to > >avoid generating code that didn't need to be generated and got it slimmed > >down to the code you see above). However, that means that some > >functionality isn't available where it works just fine for the ASM2 version > >(built with the ASMifier). I would like the two to generate nearly > >identical code and this is the last little bit that I need to get > >working. Can someone please point out the syntax needed to generate the > >proper code (like the former, which is spit out by the ASM2 version) rather > >than the improper code (like the latter, generated by the BCEL code above, > >which is clearly incorrect, but I'm just not familiar enough with these > >bytecode tools to know what the proper syntax is). > > > >thanks, > > > > > >Jake > > > > > > > > > >--------------------------------------------------------------------- > >To unsubscribe, e-mail: [email protected] > >For additional commands, e-mail: [email protected] > > > > > > > > >--------------------------------------------------------------------- >To unsubscribe, e-mail: [email protected] >For additional commands, e-mail: [email protected] > > >