[Soot-list] custom class loader

Phil Pratt-Szeliga pcpratts at syr.edu
Sat Jul 23 07:10:10 EDT 2011


Hi,

I am making my own custom class loader.  I have a test case that I am having trouble figuring out.

I have a derived class and a base class.  With regular soot, the class constructor is loaded as:

public class rootbeertest.BaseClass1 extends rootbeertest.BaseClass0
{
    protected int m_Shared;
    public void <init>()
    {
        rootbeertest.BaseClass1 r0;

        r0 := @this: rootbeertest.BaseClass1;
        specialinvoke r0.<rootbeertest.BaseClass0: void <init>()>();
        r0.<rootbeertest.BaseClass1: int m_Shared> = 900;
        return;
    }
...

But with my class loader it is:

public class rootbeertest.BaseClass1 extends rootbeertest.BaseClass0
{
    protected int m_Shared;
    public void <init>()
    {
        rootbeertest.BaseClass1 r0;
        rootbeertest.BaseClass0 r1;

        r0 := @this: rootbeertest.BaseClass1;
        r1 = (rootbeertest.BaseClass0) r0;
        specialinvoke r1.<rootbeertest.BaseClass0: void <init>()>();
        r0.<rootbeertest.BaseClass1: int m_Shared> = 900;
        return;
    }
...

Is there some pack that I should be running to trim the cast out?  The cast seems to be causing a verify error:
java.lang.VerifyError: (class: rootbeertest/BaseClass1, method: <init> signature: ()V) Expecting to find object/array on stack

Any ideas?

Thanks,
Phil Pratt-Szeliga
Syracuse University
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mailman.cs.mcgill.ca/pipermail/soot-list/attachments/20110723/40544644/attachment.html 


More information about the Soot-list mailing list