ChairmanC / dex2jar

Automatically exported from code.google.com/p/dex2jar
0 stars 0 forks source link

dex2jar-0.0.9.8对比dex2jar-0.0.9.7发现的问题 #111

Open GoogleCodeExporter opened 9 years ago

GoogleCodeExporter commented 9 years ago
下载了最新发布版dex2jar-0.0.9.8,对比dex2jar-0.0.9.7版发现两版��
�反编译结果有较大差异。下面是使用
jd-gui反编译成java后的对比:

dex2jar-0.0.9.8:
public void a(int paramInt1, int paramInt2, int paramInt3, int paramInt4)
  {
    if ((paramInt4 <= 0) || (paramInt3 <= 0));
    while (true)
    {
      return;  //看这里!
      int i1 = 4 * ((paramInt3 + 3) / 4);
      int i2 = 4 * ((paramInt4 + 3) / 4);
      if ((l == i1) && (m == i2))
        continue;
      Iterator localIterator = this.s.iterator();
      while (localIterator.hasNext())
        ((Overlay)localIterator.next()).a(paramInt1, paramInt2, i1, i2);
      int i3 = 2 * (i1 * i2);
      if (i3 > k)
      {
        j = new short[i3];
        i = ShortBuffer.allocate(i3);
        k = i3;
      }
      h = Bitmap.createBitmap(i1, i2, Bitmap.Config.RGB_565);
      Mj.renderUpdateScreen(j, i1, i2);
      l = i1;
      m = i2;
    }
  }

dex2jar-0.0.9.7:
public void a(int paramInt1, int paramInt2, int paramInt3, int paramInt4)
  {
    int i1;
    int i2;
    Iterator localIterator;
    if ((paramInt4 > 0) && (paramInt3 > 0))
    {
      i1 = 4 * ((paramInt3 + 3) / 4);
      i2 = 4 * ((paramInt4 + 3) / 4);
      if ((l != i1) || (m != i2))
        localIterator = this.s.iterator();
    }
    while (true)
    {
      int i3;
      if (!localIterator.hasNext())
      {
        i3 = 2 * (i1 * i2);
        if (i3 > k)
        {
          j = new short[i3];
          i = ShortBuffer.allocate(i3);
          k = i3;
        }
        h = Bitmap.createBitmap(i1, i2, Bitmap.Config.RGB_565);
        Mj.renderUpdateScreen(j, i1, i2);
        l = i1;
        m = i2;
        return;
      }
      ((Overlay)i3.next()).a(paramInt1, paramInt2, i1, i2);
    }
  }

dex2jar-0.0.9.8的反编译结果感觉明显错误。

Original issue reported on code.google.com by babama...@gmail.com on 3 Mar 2012 at 6:05

GoogleCodeExporter commented 9 years ago
[deleted comment]
GoogleCodeExporter commented 9 years ago
是的,这个现象在switch也出现
 switch (ActivityAppManagement.this.mode)
      {
      default:
      case 0:
      case 1:
      case 2:
      case 3:
      }
      while (true)
      {
        return;

Original comment by hz.jiang.h@gmail.com on 14 May 2012 at 11:29

GoogleCodeExporter commented 9 years ago
I can find the error even with the "-r" parameters.

Original comment by szhai...@gmail.com on 22 Jun 2012 at 5:44