explicit MapString(const MapString& rval)
     : alloc(rval.alloc ? new std::string(*rval.alloc) : NULL),
       str(alloc ? alloc->data() : rval.data(), rval.length()) {
 }
 bool operator==(const MapString& rval) const {
   if (length() != rval.length()) return false;
   if (length() == 0) return true;
   return fastcmp<strncmp>(data(), rval.data(), length()) == 0;
 }