Revert "Make StringPiece data members private."
authorNico Weber <nicolasweber@gmx.de>
Sat, 28 Jul 2012 16:56:59 +0000 (09:56 -0700)
committerNico Weber <nicolasweber@gmx.de>
Sat, 28 Jul 2012 16:56:59 +0000 (09:56 -0700)
This reverts commit 904c9610fe66c4f4bd63a07d6f057c8603d24394.
The commit caused issue #380, this revert fixes it. The revert
also makes the test from the previous commit pass.

src/build_log.cc
src/depfile_parser.cc
src/edit_distance.cc
src/eval_env.cc
src/graph.cc
src/hash_map.h
src/lexer.cc
src/string_piece.h

index c35b0e4..1b27be3 100644 (file)
@@ -80,7 +80,7 @@ uint64_t MurmurHash64A(const void* key, int len) {
   h *= m;
   h ^= h >> r;
   return h;
-}
+} 
 #undef BIG_CONSTANT
 
 
@@ -88,7 +88,7 @@ uint64_t MurmurHash64A(const void* key, int len) {
 
 // static
 uint64_t BuildLog::LogEntry::HashCommand(StringPiece command) {
-  return MurmurHash64A(command.str(), command.len());
+  return MurmurHash64A(command.str_, command.len_);
 }
 
 BuildLog::BuildLog()
index 47b64d1..03dad92 100644 (file)
@@ -203,7 +203,7 @@ yy13:
 
     if (!is_target) {
       ins_.push_back(StringPiece(filename, len));
-    } else if (!out_.str()) {
+    } else if (!out_.str_) {
       out_ = StringPiece(filename, len);
     } else if (out_ != StringPiece(filename, len)) {
       *err = "depfile has multiple output paths.";
index 50e641d..22db4fe 100644 (file)
@@ -29,8 +29,8 @@ int EditDistance(const StringPiece& s1,
   // Although the algorithm is typically described using an m x n
   // array, only two rows are used at a time, so this implemenation
   // just keeps two separate vectors for those two rows.
-  int m = s1.len();
-  int n = s2.len();
+  int m = s1.len_;
+  int n = s2.len_;
 
   std::vector<int> previous(n + 1);
   std::vector<int> current(n + 1);
@@ -44,11 +44,11 @@ int EditDistance(const StringPiece& s1,
 
     for (int x = 1; x <= n; ++x) {
       if (allow_replacements) {
-        current[x] = min(previous[x-1] + (s1.str()[y-1] == s2.str()[x-1] ?
-            0 : 1), min(current[x-1], previous[x]) + 1);
+        current[x] = min(previous[x-1] + (s1.str_[y-1] == s2.str_[x-1] ? 0 : 1),
+                         min(current[x-1], previous[x])+1);
       }
       else {
-        if (s1.str()[y-1] == s2.str()[x-1])
+        if (s1.str_[y-1] == s2.str_[x-1])
           current[x] = previous[x-1];
         else
           current[x] = min(current[x-1], previous[x]) + 1;
index 793ea64..81a8765 100644 (file)
@@ -41,7 +41,7 @@ string EvalString::Evaluate(Env* env) const {
 void EvalString::AddText(StringPiece text) {
   // Add it to the end of an existing RAW token if possible.
   if (!parsed_.empty() && parsed_.back().second == RAW) {
-    parsed_.back().first.append(text.str(), text.len());
+    parsed_.back().first.append(text.str_, text.len_);
   } else {
     parsed_.push_back(make_pair(text.AsString(), RAW));
   }
index caf2aca..18adeee 100644 (file)
@@ -295,8 +295,7 @@ bool Edge::LoadDepFile(State* state, DiskInterface* disk_interface,
   // Add all its in-edges.
   for (vector<StringPiece>::iterator i = depfile.ins_.begin();
        i != depfile.ins_.end(); ++i, ++implicit_dep) {
-    int length = i->len();
-    if (!CanonicalizePath(const_cast<char*>(i->str()), &length, err))
+    if (!CanonicalizePath(const_cast<char*>(i->str_), &i->len_, err))
       return false;
 
     Node* node = state->GetNode(*i);
index ff2f7ba..658f699 100644 (file)
@@ -86,7 +86,7 @@ struct hash<std::string> {
 template<>
 struct hash<StringPiece> {
   size_t operator()(StringPiece key) const {
-    return MurmurHash2(key.str(), key.len());
+    return MurmurHash2(key.str_, key.len_);
   }
 };
 
index 45bf4ef..ca6f367 100644 (file)
@@ -23,8 +23,8 @@
 bool Lexer::Error(const string& message, string* err) {
   // Compute line/column.
   int line = 1;
-  const char* context = input_.str();
-  for (const char* p = input_.str(); p < last_token_; ++p) {
+  const char* context = input_.str_;
+  for (const char* p = input_.str_; p < last_token_; ++p) {
     if (*p == '\n') {
       ++line;
       context = p + 1;
@@ -66,7 +66,7 @@ Lexer::Lexer(const char* input) {
 void Lexer::Start(StringPiece filename, StringPiece input) {
   filename_ = filename;
   input_ = input;
-  ofs_ = input_.str();
+  ofs_ = input_.str_;
   last_token_ = NULL;
 }
 
index 76679f1..ad1153e 100644 (file)
@@ -46,10 +46,6 @@ struct StringPiece {
     return len_ ? string(str_, len_) : string();
   }
 
-  const char* str() const { return str_; }
-  int len() const { return len_; }
-
- private:
   const char* str_;
   int len_;
 };