Fix DexFile's line number and test EH and StackTraceElement in 3 ways.
Testing exception handling: 1. Walking stack 10 levels and then check
depth == 10. 2. Check if correct stack trace is being generated. 3. For
native frame, lineno should be -2 to indicate it is native. Note that
"line number == -2" is how libcore tells from StackTraceElement.
Change-Id: If38c16a59624f259985bcfcebc337b73b0582460
diff --git a/src/object.h b/src/object.h
index 8a186e1..1df10ad 100644
--- a/src/object.h
+++ b/src/object.h
@@ -1724,12 +1724,12 @@
return file_name_;
}
- uint32_t GetLineNumber() const {
+ int32_t GetLineNumber() const {
return line_number_;
}
static StackTraceElement* Alloc(const String* declaring_class, const String* method_name,
- const String* file_name, uint32_t line_number) {
+ const String* file_name, int32_t line_number) {
StackTraceElement* trace = down_cast<StackTraceElement*>(GetStackTraceElement()->NewInstance());
trace->declaring_class_ = declaring_class;
trace->method_name_ = method_name;
@@ -1746,7 +1746,7 @@
const String* declaring_class_;
const String* method_name_;
const String* file_name_;
- uint32_t line_number_;
+ int32_t line_number_;
static Class* GetStackTraceElement() {
DCHECK(java_lang_StackTraceElement_ != NULL);