Index: test/cctest/test-api.cc |
diff --git a/test/cctest/test-api.cc b/test/cctest/test-api.cc |
index 0cab72374dc934677396b67b44457b8147e55d44..796127a438b17b294864b59099455d794c1c50c4 100644 |
--- a/test/cctest/test-api.cc |
+++ b/test/cctest/test-api.cc |
@@ -488,11 +488,14 @@ class TestResource: public String::ExternalStringResource { |
class TestAsciiResource: public String::ExternalAsciiStringResource { |
public: |
- explicit TestAsciiResource(const char* data, int* counter = NULL) |
- : data_(data), length_(strlen(data)), counter_(counter) { } |
+ TestAsciiResource(const char* data, int* counter = NULL, size_t offset = 0) |
+ : orig_data_(data), |
+ data_(data + offset), |
+ length_(strlen(data) - offset), |
+ counter_(counter) { } |
~TestAsciiResource() { |
- i::DeleteArray(data_); |
+ i::DeleteArray(orig_data_); |
if (counter_ != NULL) ++*counter_; |
} |
@@ -503,7 +506,9 @@ class TestAsciiResource: public String::ExternalAsciiStringResource { |
size_t length() const { |
return length_; |
} |
+ |
private: |
+ const char* orig_data_; |
const char* data_; |
size_t length_; |
int* counter_; |
@@ -733,11 +738,11 @@ TEST(MakingExternalUnalignedAsciiString) { |
int dispose_count = 0; |
const char* c_cons = "_abcdefghijklmnopqrstuvwxyz"; |
bool success = cons->MakeExternal( |
- new TestAsciiResource(i::StrDup(c_cons) + 1, &dispose_count)); |
+ new TestAsciiResource(i::StrDup(c_cons), &dispose_count, 1)); |
CHECK(success); |
const char* c_slice = "_bcdefghijklmnopqrstuvwxyz"; |
success = slice->MakeExternal( |
- new TestAsciiResource(i::StrDup(c_slice) + 1, &dispose_count)); |
+ new TestAsciiResource(i::StrDup(c_slice), &dispose_count, 1)); |
CHECK(success); |
// Trigger GCs and force evacuation. |