Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(784)

Unified Diff: src/objects-debug.cc

Issue 2549773002: Internalize strings in-place (Closed)
Patch Set: rebased Created 3 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « src/objects-body-descriptors-inl.h ('k') | src/objects-inl.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: src/objects-debug.cc
diff --git a/src/objects-debug.cc b/src/objects-debug.cc
index 986970444fabf7eec8a981ea245eb2292258ee3a..bdd6560cad22fca9d2c08266571e3630835c706a 100644
--- a/src/objects-debug.cc
+++ b/src/objects-debug.cc
@@ -559,6 +559,8 @@ void String::StringVerify() {
ConsString::cast(this)->ConsStringVerify();
} else if (IsSlicedString()) {
SlicedString::cast(this)->SlicedStringVerify();
+ } else if (IsThinString()) {
+ ThinString::cast(this)->ThinStringVerify();
}
}
@@ -570,12 +572,17 @@ void ConsString::ConsStringVerify() {
CHECK(this->length() >= ConsString::kMinLength);
CHECK(this->length() == this->first()->length() + this->second()->length());
if (this->IsFlat()) {
- // A flat cons can only be created by String::SlowTryFlatten.
- // Afterwards, the first part may be externalized.
- CHECK(this->first()->IsSeqString() || this->first()->IsExternalString());
+ // A flat cons can only be created by String::SlowFlatten.
+ // Afterwards, the first part may be externalized or internalized.
+ CHECK(this->first()->IsSeqString() || this->first()->IsExternalString() ||
+ this->first()->IsThinString());
}
}
+void ThinString::ThinStringVerify() {
+ CHECK(this->actual()->IsInternalizedString());
+ CHECK(this->actual()->IsSeqString() || this->actual()->IsExternalString());
+}
void SlicedString::SlicedStringVerify() {
CHECK(!this->parent()->IsConsString());
« no previous file with comments | « src/objects-body-descriptors-inl.h ('k') | src/objects-inl.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698