Index: runtime/vm/object.cc |
diff --git a/runtime/vm/object.cc b/runtime/vm/object.cc |
index 546148d2668fed3a0ed6b203503f0ffa94db40fd..6ef9332fe925b057550261de0ee9a3259c15b325 100644 |
--- a/runtime/vm/object.cc |
+++ b/runtime/vm/object.cc |
@@ -2894,7 +2894,7 @@ bool Class::ValidatePostFinalizePatch(const Class& orig_class, |
*error = LanguageError::NewFormatted( |
*error, // No previous error. |
Script::Handle(script()), token_pos(), Report::AtLocation, |
- Report::kError, Heap::kNew, |
+ Report::kError, Heap::kOld, |
"new fields are not allowed for this patch"); |
return false; |
} |
@@ -2903,7 +2903,7 @@ bool Class::ValidatePostFinalizePatch(const Class& orig_class, |
*error = LanguageError::NewFormatted(*error, // No previous error. |
Script::Handle(script()), token_pos(), |
Report::AtLocation, Report::kError, |
- Heap::kNew, "no functions to patch"); |
+ Heap::kOld, "no functions to patch"); |
return false; |
} |
// Iterate over all functions that will be patched and make sure |
@@ -2926,7 +2926,7 @@ bool Class::ValidatePostFinalizePatch(const Class& orig_class, |
*error = LanguageError::NewFormatted( |
*error, // No previous error. |
Script::Handle(script()), token_pos(), Report::AtLocation, |
- Report::kError, Heap::kNew, |
+ Report::kError, Heap::kOld, |
!orig_func.is_external() |
? "'%s' is not external and therefore cannot be patched" |
: "'%s' has already executed and therefore cannot be patched", |
@@ -2938,7 +2938,7 @@ bool Class::ValidatePostFinalizePatch(const Class& orig_class, |
*error = LanguageError::NewFormatted( |
*error, // No previous error. |
Script::Handle(script()), token_pos(), Report::AtLocation, |
- Report::kError, Heap::kNew, |
+ Report::kError, Heap::kOld, |
"'%s' is not private and therefore cannot be patched", |
name.ToCString()); |
return false; |
@@ -2974,15 +2974,15 @@ bool Class::ApplyPatch(const Class& patch, Error* error) const { |
Function& orig_func = Function::Handle(); |
// Lookup the original implicit constructor, if any. |
member_name = Name(); |
- member_name = String::Concat(member_name, Symbols::Dot()); |
+ member_name = String::Concat(member_name, Symbols::Dot(), Heap::kOld); |
Function& orig_implicit_ctor = Function::Handle(LookupFunction(member_name)); |
if (!orig_implicit_ctor.IsNull() && |
!orig_implicit_ctor.IsImplicitConstructor()) { |
// Not an implicit constructor, but a user declared one. |
orig_implicit_ctor = Function::null(); |
} |
- const GrowableObjectArray& new_functions = |
- GrowableObjectArray::Handle(GrowableObjectArray::New(orig_len)); |
+ const GrowableObjectArray& new_functions = GrowableObjectArray::Handle( |
+ GrowableObjectArray::New(orig_len, Heap::kOld)); |
for (intptr_t i = 0; i < orig_len; i++) { |
orig_func ^= orig_list.At(i); |
member_name ^= orig_func.name(); |
@@ -3015,11 +3015,11 @@ bool Class::ApplyPatch(const Class& patch, Error* error) const { |
orig_implicit_ctor = Function::null(); |
} |
func.set_owner(patch_class); |
- new_functions.Add(func); |
+ new_functions.Add(func, Heap::kOld); |
} |
if (!orig_implicit_ctor.IsNull()) { |
// Preserve the original implicit constructor. |
- new_functions.Add(orig_implicit_ctor); |
+ new_functions.Add(orig_implicit_ctor, Heap::kOld); |
} |
Array& new_list = Array::Handle(Array::MakeArray(new_functions)); |
SetFunctions(new_list); |
@@ -3033,7 +3033,7 @@ bool Class::ApplyPatch(const Class& patch, Error* error) const { |
Field& field = Field::Handle(); |
Field& orig_field = Field::Handle(); |
- new_list = Array::New(patch_len + orig_len); |
+ new_list = Array::New(patch_len + orig_len, Heap::kOld); |
for (intptr_t i = 0; i < patch_len; i++) { |
field ^= patch_list.At(i); |
field.set_owner(patch_class); |
@@ -3180,7 +3180,8 @@ void Class::SetFields(const Array& value) const { |
void Class::AddField(const Field& field) const { |
const Array& arr = Array::Handle(fields()); |
- const Array& new_arr = Array::Handle(Array::Grow(arr, arr.Length() + 1)); |
+ const Array& new_arr = |
+ Array::Handle(Array::Grow(arr, arr.Length() + 1, Heap::kOld)); |
new_arr.SetAt(arr.Length(), field); |
SetFields(new_arr); |
} |
@@ -5269,12 +5270,12 @@ RawString* TypeArguments::EnumerateURIs() const { |
Zone* zone = thread->zone(); |
AbstractType& type = AbstractType::Handle(zone); |
const intptr_t num_types = Length(); |
- const Array& pieces = Array::Handle(zone, Array::New(num_types)); |
+ const Array& pieces = Array::Handle(zone, Array::New(num_types, Heap::kOld)); |
for (intptr_t i = 0; i < num_types; i++) { |
type = TypeAt(i); |
pieces.SetAt(i, String::Handle(zone, type.EnumerateURIs())); |
} |
- return String::ConcatAll(pieces); |
+ return String::ConcatAll(pieces, Heap::kOld); |
} |
@@ -7718,7 +7719,7 @@ void Field::SetOriginal(const Field& value) const { |
RawString* Field::GetterName(const String& field_name) { |
- return String::Concat(Symbols::GetterPrefix(), field_name); |
+ return String::Concat(Symbols::GetterPrefix(), field_name, Heap::kOld); |
} |
@@ -8063,10 +8064,11 @@ RawInstance* Field::AccessorClosure(bool make_setter) const { |
const char* field_name = String::Handle(zone, name()).ToCString(); |
String& expr_src = String::Handle(zone); |
if (make_setter) { |
- expr_src = String::NewFormatted("(%s_) { return %s = %s_; }", field_name, |
- field_name, field_name); |
+ expr_src = String::NewFormatted(Heap::kOld, "(%s_) { return %s = %s_; }", |
+ field_name, field_name, field_name); |
} else { |
- expr_src = String::NewFormatted("() { return %s; }", field_name); |
+ expr_src = |
+ String::NewFormatted(Heap::kOld, "() { return %s; }", field_name); |
} |
Object& result = |
Object::Handle(zone, field_owner.Evaluate(expr_src, Object::empty_array(), |
@@ -9992,7 +9994,7 @@ void Library::AddPatchClass(const Class& cls) const { |
ASSERT(GetPatchClass(String::Handle(cls.Name())) == Class::null()); |
const GrowableObjectArray& patch_classes = |
GrowableObjectArray::Handle(this->patch_classes()); |
- patch_classes.Add(cls); |
+ patch_classes.Add(cls, Heap::kOld); |
} |
@@ -10926,7 +10928,7 @@ void Library::AddImport(const Namespace& ns) const { |
intptr_t capacity = imports.Length(); |
if (num_imports() == capacity) { |
capacity = capacity + kImportsCapacityIncrement + (capacity >> 2); |
- imports = Array::Grow(imports, capacity); |
+ imports = Array::Grow(imports, capacity, Heap::kOld); |
StorePointer(&raw_ptr()->imports_, imports.raw()); |
} |
intptr_t index = num_imports(); |
@@ -10948,7 +10950,7 @@ bool Library::HasExports() const { |
void Library::AddExport(const Namespace& ns) const { |
Array& exports = Array::Handle(this->exports()); |
intptr_t num_exports = exports.Length(); |
- exports = Array::Grow(exports, num_exports + 1); |
+ exports = Array::Grow(exports, num_exports + 1, Heap::kOld); |
StorePointer(&raw_ptr()->exports_, exports.raw()); |
exports.SetAt(num_exports, ns); |
} |
@@ -10965,7 +10967,7 @@ static RawArray* NewDictionary(intptr_t initial_size) { |
void Library::InitResolvedNamesCache() const { |
ASSERT(Thread::Current()->IsMutatorThread()); |
StorePointer(&raw_ptr()->resolved_names_, |
- HashTables::New<ResolvedNamesMap>(64)); |
+ HashTables::New<ResolvedNamesMap>(64, Heap::kOld)); |
} |
@@ -10977,7 +10979,7 @@ void Library::ClearResolvedNamesCache() const { |
void Library::InitExportedNamesCache() const { |
StorePointer(&raw_ptr()->exported_names_, |
- HashTables::New<ResolvedNamesMap>(16)); |
+ HashTables::New<ResolvedNamesMap>(16, Heap::kOld)); |
} |
@@ -11308,7 +11310,7 @@ void Library::Register(Thread* thread) const { |
GrowableObjectArray::Handle(zone, object_store->libraries()); |
ASSERT(!libs.IsNull()); |
set_index(libs.Length()); |
- libs.Add(*this); |
+ libs.Add(*this, Heap::kOld); |
// - A map from URL string to library. |
if (object_store->libraries_map() == Array::null()) { |
@@ -11705,7 +11707,7 @@ RawLibraryPrefix* LibraryPrefix::New(const String& name, |
result.set_importer(importer); |
result.StoreNonPointer(&result.raw_ptr()->is_deferred_load_, deferred_load); |
result.StoreNonPointer(&result.raw_ptr()->is_loaded_, !deferred_load); |
- result.set_imports(Array::Handle(Array::New(kInitialSize))); |
+ result.set_imports(Array::Handle(Array::New(kInitialSize, Heap::kOld))); |
result.AddImport(import); |
return result.raw(); |
} |
@@ -18172,7 +18174,7 @@ bool TypeParameter::CheckBound(const AbstractType& bounded_type, |
// meaningless, therefore use the token index of this type parameter. |
*bound_error = LanguageError::NewFormatted( |
*bound_error, script, token_pos(), Report::AtLocation, |
- Report::kMalboundedType, Heap::kNew, |
+ Report::kMalboundedType, Heap::kOld, |
"type parameter '%s' of class '%s' must extend bound '%s', " |
"but type argument '%s' is not a subtype of '%s' where\n%s%s", |
type_param_name.ToCString(), class_name.ToCString(), |