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

Unified Diff: vm/object.h

Issue 9363048: Implement capability to use the same library prefix for multiple library imports (currently this ... (Closed) Base URL: http://dart.googlecode.com/svn/branches/bleeding_edge/dart/runtime/
Patch Set: Created 8 years, 10 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 | « vm/class_finalizer.cc ('k') | vm/object.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: vm/object.h
===================================================================
--- vm/object.h (revision 4282)
+++ vm/object.h (working copy)
@@ -1708,6 +1708,7 @@
RawClass* LookupClass(const String& name) const;
RawObject* LookupLocalObject(const String& name) const;
RawClass* LookupLocalClass(const String& name) const;
+ RawLibraryPrefix* LookupLocalLibraryPrefix(const String& name) const;
RawScript* LookupScript(const String& url) const;
RawArray* LoadedScripts() const;
@@ -1737,6 +1738,8 @@
RawLibrary* next_registered() const { return raw_ptr()->next_registered_; }
+ RawString* DuplicateDefineErrorString(const String& entry_name,
+ const Library& conflicting_lib) const;
static RawLibrary* LookupLibrary(const String& url);
static RawString* CheckForDuplicateDefinition();
static bool IsKeyUsed(intptr_t key);
@@ -1779,9 +1782,7 @@
RawObject* LookupObjectFiltered(const String& name,
const Library& filter_lib) const;
RawLibrary* LookupObjectInImporter(const String& name) const;
- RawString* DuplicateDefineErrorString(const String& entry_name,
- const Library& conflicting_lib) const;
- RawString* FindDuplicateDefinition(Library* conflicting_lib) const;
+ RawString* FindDuplicateDefinition() const;
HEAP_OBJECT_IMPLEMENTATION(Library, Object);
friend class Class;
@@ -1794,8 +1795,14 @@
class LibraryPrefix : public Object {
public:
RawString* name() const { return raw_ptr()->name_; }
- RawLibrary* library() const { return raw_ptr()->library_; }
+ RawArray* libraries() const { return raw_ptr()->libraries_; }
+ intptr_t num_libs() const { return raw_ptr()->num_libs_; }
+ RawLibrary* GetLibrary(int index) const;
+ void AddLibrary(const Library& library) const;
+ RawClass* LookupLocalClass(const String& class_name) const;
+ RawString* CheckForDuplicateDefinition() const;
+
static intptr_t InstanceSize() {
return RoundedAllocationSize(sizeof(RawLibraryPrefix));
}
@@ -1803,8 +1810,12 @@
static RawLibraryPrefix* New(const String& name, const Library& lib);
private:
+ static const int kInitialSize = 2;
+ static const int kIncrementSize = 2;
+
void set_name(const String& value) const;
- void set_library(const Library& value) const;
+ void set_libraries(const Array& value) const;
+ void set_num_libs(intptr_t value) const;
static RawLibraryPrefix* New();
HEAP_OBJECT_IMPLEMENTATION(LibraryPrefix, Object);
« no previous file with comments | « vm/class_finalizer.cc ('k') | vm/object.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698