diff options
author | 2011-08-23 16:02:11 -0700 | |
---|---|---|
committer | 2011-08-31 09:46:57 -0700 | |
commit | 1f87008b165d26541d832ff805250afdc89c253d (patch) | |
tree | a84122b3757b8f856eb0656a951ed6621b6d01a8 /src/class_loader.h | |
parent | c5bfa8f49d8548d7c685a99b411311ef56bedffa (diff) |
Add HeapTest and make GC work enough to pass it
Change-Id: If06eaef2921b64b3226bfd347acaec60ec993e67
Diffstat (limited to 'src/class_loader.h')
-rw-r--r-- | src/class_loader.h | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/src/class_loader.h b/src/class_loader.h new file mode 100644 index 0000000000..da19539be0 --- /dev/null +++ b/src/class_loader.h @@ -0,0 +1,54 @@ +// Copyright 2011 Google Inc. All Rights Reserved. + +#ifndef ART_SRC_CLASS_LOADER_H_ +#define ART_SRC_CLASS_LOADER_H_ + +#include <vector> + +#include "dex_file.h" +#include "object.h" + +namespace art { + +// ClassLoader objects. +class ClassLoader : public Object { + public: + static const std::vector<const DexFile*>& GetClassPath(const ClassLoader* class_loader); + + void SetClassPath(std::vector<const DexFile*>& class_path) { + DCHECK_EQ(0U, class_path_.size()); + class_path_ = class_path; + } + + private: + // Field order required by test "ValidateFieldOrderOfJavaCppUnionClasses". + Object* packages_; + ClassLoader* parent_; + + // TODO: remove once we can create a real PathClassLoader + std::vector<const DexFile*> class_path_; + + DISALLOW_IMPLICIT_CONSTRUCTORS(ClassLoader); +}; + +class BaseDexClassLoader : public ClassLoader { + private: + // Field order required by test "ValidateFieldOrderOfJavaCppUnionClasses". + String* original_path_; + Object* path_list_; + DISALLOW_IMPLICIT_CONSTRUCTORS(BaseDexClassLoader); +}; + +class PathClassLoader : public BaseDexClassLoader { + public: + static const PathClassLoader* Alloc(std::vector<const DexFile*> dex_files); + static void SetClass(Class* dalvik_system_PathClassLoader); + static void ResetClass(); + private: + static Class* dalvik_system_PathClassLoader_; + DISALLOW_IMPLICIT_CONSTRUCTORS(PathClassLoader); +}; + +} // namespace art + +#endif // ART_SRC_OBJECT_H_ |