Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1865)

Unified Diff: runtime/vm/raw_object.h

Issue 1150633002: Track prologue offset of Code and use for more precise return addresses (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: Created 5 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « runtime/vm/profiler.cc ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: runtime/vm/raw_object.h
diff --git a/runtime/vm/raw_object.h b/runtime/vm/raw_object.h
index 217f30f4bf54851e7e75a45ce60e0de3add2c71d..07ec56aa2d49a9b32c97e2921ed8ab57763e2993 100644
--- a/runtime/vm/raw_object.h
+++ b/runtime/vm/raw_object.h
@@ -944,6 +944,12 @@ class RawNamespace : public RawObject {
class RawCode : public RawObject {
+ enum InlinedMetadataIndex {
+ kInlinedIntervalsIndex = 0,
+ kInlinedIdToFunctionIndex = 1,
+ kInlinedMetadataSize = 2,
+ };
+
RAW_HEAP_OBJECT_IMPLEMENTATION(Code);
RawObject** from() {
@@ -960,9 +966,11 @@ class RawCode : public RawObject {
RawArray* static_calls_target_table_; // (code-offset, function, code).
RawArray* stackmaps_;
RawLocalVarDescriptors* var_descriptors_;
- RawArray* inlined_intervals_;
- RawArray* inlined_id_to_function_;
+ RawArray* inlined_metadata_;
RawArray* comments_;
+ // If return_address_info_ is a Smi, it is the offset to the prologue.
+ // Else, return_address_info_ is null.
+ RawObject* return_address_metadata_;
RawObject** to() {
return reinterpret_cast<RawObject**>(&ptr()->comments_);
}
@@ -985,9 +993,10 @@ class RawCode : public RawObject {
int32_t* data() { OPEN_ARRAY_START(int32_t, int32_t); }
const int32_t* data() const { OPEN_ARRAY_START(int32_t, int32_t); }
- friend class StackFrame;
- friend class MarkingVisitor;
+ friend class Code;
friend class Function;
+ friend class MarkingVisitor;
+ friend class StackFrame;
};
« no previous file with comments | « runtime/vm/profiler.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698