summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/dex_file.cc6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/dex_file.cc b/src/dex_file.cc
index d7517c47fa..5185ba8daa 100644
--- a/src/dex_file.cc
+++ b/src/dex_file.cc
@@ -749,6 +749,7 @@ void DexFile::DecodeDebugInfo0(const CodeItem* code_item, const Method* method,
CHECK(class_def != NULL) << descriptor;
local_in_reg[arg_reg].name_ = "this";
local_in_reg[arg_reg].descriptor_ = GetClassDescriptor(*class_def);
+ local_in_reg[arg_reg].signature_ = NULL;
local_in_reg[arg_reg].start_address_ = 0;
local_in_reg[arg_reg].is_live_ = true;
}
@@ -762,12 +763,13 @@ void DexFile::DecodeDebugInfo0(const CodeItem* code_item, const Method* method,
<< " >= " << code_item->registers_size_ << ")";
return;
}
- int32_t id = DecodeUnsignedLeb128P1(&stream);
+ uint32_t id = DecodeUnsignedLeb128P1(&stream);
const char* descriptor = it.GetDescriptor();
- if (need_locals) {
+ if (need_locals && id != kDexNoIndex) {
const char* name = StringDataByIdx(id);
local_in_reg[arg_reg].name_ = name;
local_in_reg[arg_reg].descriptor_ = descriptor;
+ local_in_reg[arg_reg].signature_ = NULL;
local_in_reg[arg_reg].start_address_ = address;
local_in_reg[arg_reg].is_live_ = true;
}