Reviewers: ulan,
Description:
Make sure we delete[] what we got from new[], not one byte after it.
Please review this at https://codereview.chromium.org/150213002/
SVN Base: https://v8.googlecode.com/svn/branches/bleeding_edge
Affected files (+10, -5 lines):
M test/cctest/test-api.cc
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.
--
--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev
---
You received this message because you are subscribed to the Google Groups "v8-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/groups/opt_out.