Index: test/cctest/test-strings.cc |
diff --git a/test/cctest/test-strings.cc b/test/cctest/test-strings.cc |
index 12d71e91441613c8fd66cb977ebf68e38b3be826..310d93c04ea8b9cadda0c1cbad1d3e25658b923f 100644 |
--- a/test/cctest/test-strings.cc |
+++ b/test/cctest/test-strings.cc |
@@ -133,12 +133,12 @@ class AsciiResource: public v8::String::ExternalAsciiStringResource, |
static void InitializeBuildingBlocks(Handle<String>* building_blocks, |
int bb_length, |
bool long_blocks, |
- RandomNumberGenerator* rng) { |
+ RandomNumberGenerator* rng, |
+ Zone* zone) { |
// A list of pointers that we don't have any interest in cleaning up. |
// If they are reachable from a root then leak detection won't complain. |
Isolate* isolate = Isolate::Current(); |
Factory* factory = isolate->factory(); |
- Zone* zone = isolate->runtime_zone(); |
for (int i = 0; i < bb_length; i++) { |
int len = rng->next(16); |
int slice_head_chars = 0; |
@@ -263,7 +263,7 @@ void ConsStringStats::VerifyEqual(const ConsStringStats& that) const { |
class ConsStringGenerationData { |
public: |
static const int kNumberOfBuildingBlocks = 256; |
- explicit ConsStringGenerationData(bool long_blocks); |
+ ConsStringGenerationData(bool long_blocks, Zone* zone); |
void Reset(); |
inline Handle<String> block(int offset); |
inline Handle<String> block(uint32_t offset); |
@@ -285,10 +285,11 @@ class ConsStringGenerationData { |
}; |
-ConsStringGenerationData::ConsStringGenerationData(bool long_blocks) { |
+ConsStringGenerationData::ConsStringGenerationData(bool long_blocks, |
+ Zone* zone) { |
rng_.init(); |
InitializeBuildingBlocks( |
- building_blocks_, kNumberOfBuildingBlocks, long_blocks, &rng_); |
+ building_blocks_, kNumberOfBuildingBlocks, long_blocks, &rng_, zone); |
empty_string_ = Isolate::Current()->heap()->empty_string(); |
Reset(); |
} |
@@ -570,8 +571,8 @@ TEST(Traverse) { |
printf("TestTraverse\n"); |
CcTest::InitializeVM(); |
v8::HandleScope scope(CcTest::isolate()); |
- ZoneScope zone(Isolate::Current()->runtime_zone(), DELETE_ON_EXIT); |
- ConsStringGenerationData data(false); |
+ Zone zone(Isolate::Current()); |
+ ConsStringGenerationData data(false, &zone); |
Handle<String> flat = ConstructBalanced(&data); |
FlattenString(flat); |
Handle<String> left_asymmetric = ConstructLeft(&data, DEEP_DEPTH); |
@@ -660,8 +661,8 @@ void TestStringCharacterStream(BuildString build, int test_cases) { |
CcTest::InitializeVM(); |
Isolate* isolate = Isolate::Current(); |
HandleScope outer_scope(isolate); |
- ZoneScope zone(Isolate::Current()->runtime_zone(), DELETE_ON_EXIT); |
- ConsStringGenerationData data(true); |
+ Zone zone(isolate); |
+ ConsStringGenerationData data(true, &zone); |
for (int i = 0; i < test_cases; i++) { |
printf("%d\n", i); |
HandleScope inner_scope(isolate); |
@@ -929,11 +930,11 @@ TEST(Utf8Conversion) { |
TEST(ExternalShortStringAdd) { |
- ZoneScope zonescope(Isolate::Current()->runtime_zone(), DELETE_ON_EXIT); |
+ Isolate* isolate = Isolate::Current(); |
+ Zone zone(isolate); |
CcTest::InitializeVM(); |
v8::HandleScope handle_scope(CcTest::isolate()); |
- Zone* zone = Isolate::Current()->runtime_zone(); |
// Make sure we cover all always-flat lengths and at least one above. |
static const int kMaxLength = 20; |
@@ -947,25 +948,25 @@ TEST(ExternalShortStringAdd) { |
// Generate short ascii and non-ascii external strings. |
for (int i = 0; i <= kMaxLength; i++) { |
- char* ascii = zone->NewArray<char>(i + 1); |
+ char* ascii = zone.NewArray<char>(i + 1); |
for (int j = 0; j < i; j++) { |
ascii[j] = 'a'; |
} |
// Terminating '\0' is left out on purpose. It is not required for external |
// string data. |
AsciiResource* ascii_resource = |
- new(zone) AsciiResource(Vector<const char>(ascii, i)); |
+ new(&zone) AsciiResource(Vector<const char>(ascii, i)); |
v8::Local<v8::String> ascii_external_string = |
v8::String::NewExternal(ascii_resource); |
ascii_external_strings->Set(v8::Integer::New(i), ascii_external_string); |
- uc16* non_ascii = zone->NewArray<uc16>(i + 1); |
+ uc16* non_ascii = zone.NewArray<uc16>(i + 1); |
for (int j = 0; j < i; j++) { |
non_ascii[j] = 0x1234; |
} |
// Terminating '\0' is left out on purpose. It is not required for external |
// string data. |
- Resource* resource = new(zone) Resource(Vector<const uc16>(non_ascii, i)); |
+ Resource* resource = new(&zone) Resource(Vector<const uc16>(non_ascii, i)); |
v8::Local<v8::String> non_ascii_external_string = |
v8::String::NewExternal(resource); |
non_ascii_external_strings->Set(v8::Integer::New(i), |
@@ -1021,7 +1022,7 @@ TEST(CachedHashOverflow) { |
// values didn't fit in the hash field. |
// See http://code.google.com/p/v8/issues/detail?id=728 |
Isolate* isolate = Isolate::Current(); |
- ZoneScope zone(isolate->runtime_zone(), DELETE_ON_EXIT); |
+ Zone zone(isolate); |
CcTest::InitializeVM(); |
v8::HandleScope handle_scope(CcTest::isolate()); |