From b759a665c8cc4135b3fe722b70acef60c9d13d8e Mon Sep 17 00:00:00 2001 From: "JesusFreke@JesusFreke.com" Date: Fri, 17 Apr 2009 06:04:46 +0000 Subject: [PATCH] Fixed logic in checking the index size of the register in various formats git-svn-id: https://smali.googlecode.com/svn/trunk@6 55b6fa8a-2a1e-11de-a435-ffa8d773f76a --- .../org/JesusFreke/dexlib/code/Format/Format11x.java | 2 +- .../org/JesusFreke/dexlib/code/Format/Format21c.java | 2 +- .../org/JesusFreke/dexlib/code/Format/Format22c.java | 4 ++-- .../org/JesusFreke/dexlib/code/Format/Format35c.java | 10 +++++----- .../org/JesusFreke/dexlib/code/Format/Format3rc.java | 4 ++-- 5 files changed, 11 insertions(+), 11 deletions(-) diff --git a/src/main/java/org/JesusFreke/dexlib/code/Format/Format11x.java b/src/main/java/org/JesusFreke/dexlib/code/Format/Format11x.java index d8cf37c7..fe6fd5f7 100644 --- a/src/main/java/org/JesusFreke/dexlib/code/Format/Format11x.java +++ b/src/main/java/org/JesusFreke/dexlib/code/Format/Format11x.java @@ -44,7 +44,7 @@ public class Format11x extends Format checkOpcodeFormat(op); - if (regA >= 2<<8) { + if (regA >= 1<<8) { throw new RuntimeException("The register number must be less than v256"); } diff --git a/src/main/java/org/JesusFreke/dexlib/code/Format/Format21c.java b/src/main/java/org/JesusFreke/dexlib/code/Format/Format21c.java index 10c7eed7..37925c59 100644 --- a/src/main/java/org/JesusFreke/dexlib/code/Format/Format21c.java +++ b/src/main/java/org/JesusFreke/dexlib/code/Format/Format21c.java @@ -49,7 +49,7 @@ public class Format21c extends Format checkOpcodeFormat(op); - if (regA >= 2<<8) { + if (regA >= 1<<8) { throw new RuntimeException("The register number must be less than v256"); } diff --git a/src/main/java/org/JesusFreke/dexlib/code/Format/Format22c.java b/src/main/java/org/JesusFreke/dexlib/code/Format/Format22c.java index ab09a6dc..12c2dc2e 100644 --- a/src/main/java/org/JesusFreke/dexlib/code/Format/Format22c.java +++ b/src/main/java/org/JesusFreke/dexlib/code/Format/Format22c.java @@ -47,8 +47,8 @@ public class Format22c extends Format checkOpcodeFormat(op); - if (regA >= 16 || - regB >= 16) { + if (regA >= 1<<4 || + regB >= 1<<4) { throw new RuntimeException("The register number must be less than v16"); } diff --git a/src/main/java/org/JesusFreke/dexlib/code/Format/Format35c.java b/src/main/java/org/JesusFreke/dexlib/code/Format/Format35c.java index 483f5205..8e0c47a1 100644 --- a/src/main/java/org/JesusFreke/dexlib/code/Format/Format35c.java +++ b/src/main/java/org/JesusFreke/dexlib/code/Format/Format35c.java @@ -50,11 +50,11 @@ public class Format35c extends Format if (regCount > 5) { throw new RuntimeException("regCount cannot be greater than 5"); } - if (regD >= 16 || - regE >= 16 || - regF >= 16 || - regG >= 16 || - regA >= 16) { + if (regD >= 1<<4 || + regE >= 1<<4 || + regF >= 1<<4 || + regG >= 1<<4 || + regA >= 1<<4) { throw new RuntimeException("All register args must fit in 4 bits"); } diff --git a/src/main/java/org/JesusFreke/dexlib/code/Format/Format3rc.java b/src/main/java/org/JesusFreke/dexlib/code/Format/Format3rc.java index b4f64d63..4d92d158 100644 --- a/src/main/java/org/JesusFreke/dexlib/code/Format/Format3rc.java +++ b/src/main/java/org/JesusFreke/dexlib/code/Format/Format3rc.java @@ -47,14 +47,14 @@ public class Format3rc extends Format checkOpcodeFormat(op); - if (regCount >= 2<<8) { + if (regCount >= 1<<8) { throw new RuntimeException("regCount must be less than 256"); } if (regCount < 0) { throw new RuntimeException("regCount cannot be negative"); } - if (startReg >= 2<<16) { + if (startReg >= 1<<16) { throw new RuntimeException("The beginning register of the range must be less than 65536"); } if (startReg < 0) {