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

Unified Diff: runtime/vm/object.h

Issue 8992020: First part of inspecting local variables (Closed) Base URL: http://dart.googlecode.com/svn/branches/bleeding_edge/dart/
Patch Set: '' Created 9 years 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
Index: runtime/vm/object.h
===================================================================
--- runtime/vm/object.h (revision 2587)
+++ runtime/vm/object.h (working copy)
@@ -138,6 +138,7 @@
kCodeClass,
kInstructionsClass,
kPcDescriptorsClass,
+ kLocalVarDescriptorsClass,
kExceptionHandlersClass,
kContextClass,
kContextScopeClass,
@@ -256,6 +257,7 @@
static RawClass* code_class() { return code_class_; }
static RawClass* instructions_class() { return instructions_class_; }
static RawClass* pc_descriptors_class() { return pc_descriptors_class_; }
+ static RawClass* var_descriptors_class() { return var_descriptors_class_; }
static RawClass* exception_handlers_class() {
return exception_handlers_class_;
}
@@ -361,6 +363,7 @@
static RawClass* code_class_; // Class of the Code vm object.
static RawClass* instructions_class_; // Class of the Instructions vm object.
static RawClass* pc_descriptors_class_; // Class of PcDescriptors vm object.
+ static RawClass* var_descriptors_class_; // Class of LocalVarDescriptors.
static RawClass* exception_handlers_class_; // Class of ExceptionHandlers.
static RawClass* context_class_; // Class of the Context vm object.
static RawClass* context_scope_class_; // Class of ContextScope vm object.
@@ -1742,6 +1745,39 @@
};
+class LocalVarDescriptors : public Object {
+ public:
+ intptr_t Length() const;
+
+ RawString* GetName(intptr_t var_index) const;
+ void GetRange(intptr_t var_index,
+ intptr_t* begin_pos, intptr_t* end_pos) const;
+
+ void SetVar(intptr_t var_index,
+ const String& name,
+ intptr_t stack_slot,
+ intptr_t begin_pos,
+ intptr_t end_pos) const;
+
+ static intptr_t InstanceSize() {
+ ASSERT(sizeof(RawLocalVarDescriptors) ==
+ OFFSET_OF(RawLocalVarDescriptors, data_));
+ return 0;
+ }
+ static intptr_t InstanceSize(intptr_t len) {
+ return RoundedAllocationSize(
+ sizeof(RawLocalVarDescriptors) +
+ (len * sizeof(RawLocalVarDescriptors::VarInfo)));
+ }
+
+ static RawLocalVarDescriptors* New(intptr_t num_variables);
+
+ private:
+ HEAP_OBJECT_IMPLEMENTATION(LocalVarDescriptors, Object);
+ friend class Class;
+};
+
+
class PcDescriptors : public Object {
public:
enum Kind {
@@ -1906,6 +1942,13 @@
StorePointer(&raw_ptr()->pc_descriptors_, descriptors.raw());
}
+ RawLocalVarDescriptors* var_descriptors() const {
+ return raw_ptr()->var_descriptors_;
+ }
+ void set_var_descriptors(const LocalVarDescriptors& value) const {
+ StorePointer(&raw_ptr()->var_descriptors_, value.raw());
+ }
+
// See class ICData for interpretation of the 'ic_data_' array.
RawArray* ic_data() const;
void set_ic_data(const Array& ic_data) const;

Powered by Google App Engine
This is Rietveld 408576698