projects
/
folly.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
folly/portability/Memory.cpp: restructure preprocessor conditionals so includes are...
[folly.git]
/
folly
/
FBString.h
diff --git
a/folly/FBString.h
b/folly/FBString.h
index 0ff4ba9e6a05bd4a3895973f641507477a93ccb7..09ab0565220e3a22ddf163faab07c725141f9603 100644
(file)
--- a/
folly/FBString.h
+++ b/
folly/FBString.h
@@
-40,6
+40,7
@@
#else // !_LIBSTDCXX_FBSTRING
#else // !_LIBSTDCXX_FBSTRING
+#include <folly/CppAttributes.h>
#include <folly/Portability.h>
// libc++ doesn't provide this header, nor does msvc
#include <folly/Portability.h>
// libc++ doesn't provide this header, nor does msvc
@@
-58,13
+59,6
@@
#include <folly/Traits.h>
#include <folly/portability/BitsFunctexcept.h>
#include <folly/Traits.h>
#include <folly/portability/BitsFunctexcept.h>
-#if FOLLY_HAVE_DEPRECATED_ASSOC
-#ifdef _GLIBCXX_SYMVER
-#include <ext/hash_set>
-#include <ext/hash_map>
-#endif
-#endif
-
// When used in folly, assertions are not disabled.
#define FBSTRING_ASSERT(expr) assert(expr)
// When used in folly, assertions are not disabled.
#define FBSTRING_ASSERT(expr) assert(expr)
@@
-500,7
+494,9
@@
public:
if (RefCounted::refs(ml_.data_) > 1) {
return ml_.size_;
}
if (RefCounted::refs(ml_.data_) > 1) {
return ml_.size_;
}
- default: {}
+ break;
+ default:
+ break;
}
return ml_.capacity();
}
}
return ml_.capacity();
}
@@
-754,10
+750,13
@@
inline void fbstring_core<Char>::initSmall(
switch ((byteSize + wordWidth - 1) / wordWidth) { // Number of words.
case 3:
ml_.capacity_ = reinterpret_cast<const size_t*>(data)[2];
switch ((byteSize + wordWidth - 1) / wordWidth) { // Number of words.
case 3:
ml_.capacity_ = reinterpret_cast<const size_t*>(data)[2];
+ FOLLY_FALLTHROUGH;
case 2:
ml_.size_ = reinterpret_cast<const size_t*>(data)[1];
case 2:
ml_.size_ = reinterpret_cast<const size_t*>(data)[1];
+ FOLLY_FALLTHROUGH;
case 1:
ml_.data_ = *reinterpret_cast<Char**>(const_cast<Char*>(data));
case 1:
ml_.data_ = *reinterpret_cast<Char**>(const_cast<Char*>(data));
+ FOLLY_FALLTHROUGH;
case 0:
break;
}
case 0:
break;
}
@@
-1148,9
+1147,9
@@
public:
#ifndef _LIBSTDCXX_FBSTRING
// This is defined for compatibility with std::string
#ifndef _LIBSTDCXX_FBSTRING
// This is defined for compatibility with std::string
- /* implicit */ basic_fbstring(const std::string& str)
- : store_(str.data(), str.size()) {
- }
+ template <typename A2>
+ /* implicit */ basic_fbstring(const std::basic_string<E, T, A2>& str)
+
: store_(str.data(), str.size()) {
}
#endif
basic_fbstring(const basic_fbstring& str,
#endif
basic_fbstring(const basic_fbstring& str,
@@
-1212,13
+1211,14
@@
public:
#ifndef _LIBSTDCXX_FBSTRING
// Compatibility with std::string
#ifndef _LIBSTDCXX_FBSTRING
// Compatibility with std::string
- basic_fbstring & operator=(const std::string & rhs) {
+ template <typename A2>
+ basic_fbstring& operator=(const std::basic_string<E, T, A2>& rhs) {
return assign(rhs.data(), rhs.size());
}
// Compatibility with std::string
return assign(rhs.data(), rhs.size());
}
// Compatibility with std::string
- std::
string
toStdString() const {
- return std::
string
(data(), size());
+ std::
basic_string<E, T, A>
toStdString() const {
+ return std::
basic_string<E, T, A>
(data(), size());
}
#else
// A lot of code in fbcode still uses this method, so keep it here for now.
}
#else
// A lot of code in fbcode still uses this method, so keep it here for now.
@@
-2874,16
+2874,6
@@
FOLLY_FBSTRING_HASH
} // namespace std
} // namespace std
-#if FOLLY_HAVE_DEPRECATED_ASSOC
-#if defined(_GLIBCXX_SYMVER) && !defined(__BIONIC__)
-namespace __gnu_cxx {
-
-FOLLY_FBSTRING_HASH
-
-} // namespace __gnu_cxx
-#endif // _GLIBCXX_SYMVER && !__BIONIC__
-#endif // FOLLY_HAVE_DEPRECATED_ASSOC
-
#undef FOLLY_FBSTRING_HASH
#undef FOLLY_FBSTRING_HASH1
#undef FOLLY_FBSTRING_HASH
#undef FOLLY_FBSTRING_HASH1