Add support for Dex version 37 in Runtime.
We are skipping version 36 of the dex file format due to a bug in
Dalvik dating back to ICS where dex files marked version 036 would
erroneously be accepted.
Bug: 27538761
Bug: 27809626
Change-Id: Ic053f7e25f5a8c3df83ff34b6656528824b2df12
diff --git a/runtime/dex_file.h b/runtime/dex_file.h
index e497e9c..6849984 100644
--- a/runtime/dex_file.h
+++ b/runtime/dex_file.h
@@ -58,7 +58,10 @@
class DexFile {
public:
static const uint8_t kDexMagic[];
- static const uint8_t kDexMagicVersion[];
+ static constexpr size_t kNumDexVersions = 2;
+ static constexpr size_t kDexVersionLen = 4;
+ static const uint8_t kDexMagicVersions[kNumDexVersions][kDexVersionLen];
+
static constexpr size_t kSha1DigestSize = 20;
static constexpr uint32_t kDexEndianConstant = 0x12345678;
@@ -71,7 +74,7 @@
// The value of an invalid index.
static const uint16_t kDexNoIndex16 = 0xFFFF;
- // The separator charactor in MultiDex locations.
+ // The separator character in MultiDex locations.
static constexpr char kMultiDexSeparator = ':';
// A string version of the previous. This is a define so that we can merge string literals in the