Don't return local copy of std::string in AnyScalar::bufferUnsafe

This commit is contained in:
JJL772
2023-07-17 14:58:39 -07:00
committed by mdavidsaver
parent 45018a2163
commit 04fcb7e38f
2 changed files with 4 additions and 4 deletions

View File

@@ -31,7 +31,7 @@ AnyScalar::AnyScalar(const AnyScalar& o)
}
#if __cplusplus>=201103L
AnyScalar::AnyScalar(AnyScalar&& o)
AnyScalar::AnyScalar(AnyScalar&& o) noexcept
:_stype(o._stype)
{
typedef std::string string;
@@ -136,7 +136,7 @@ void AnyScalar::swap(AnyScalar& o) {
}
const void* AnyScalar::bufferUnsafe() const {
if(_stype==pvString) {
return as<std::string>().c_str();
return ref<std::string>().c_str();
} else {
return _wrap.blob;
}

View File

@@ -123,7 +123,7 @@ public:
AnyScalar(const AnyScalar& o);
#if __cplusplus>=201103L
AnyScalar(AnyScalar&& o);
AnyScalar(AnyScalar&& o) noexcept;
#endif
inline ~AnyScalar() {clear();}
@@ -140,7 +140,7 @@ public:
}
#if __cplusplus>=201103L
inline AnyScalar& operator=(AnyScalar&& o) {
inline AnyScalar& operator=(AnyScalar&& o) noexcept {
clear();
swap(o);
return *this;