StringValue: Implictly convert/assign from StringRef.

Change-Id: I87f1e60a3e87db66c6efda824f9e66e919f0a5ea
This commit is contained in:
Peter Johnson
2015-07-12 23:13:43 -07:00
parent 2016bcb37a
commit 27e0f22c04
2 changed files with 13 additions and 1 deletions

View File

@@ -22,6 +22,16 @@ StringValue::StringValue(llvm::StringRef val) {
str[len] = '\0';
}
StringValue& StringValue::operator=(llvm::StringRef val) {
NT_DisposeString(this);
str = nullptr;
len = val.size();
str = static_cast<char*>(std::malloc(len+1));
std::memcpy(str, val.data(), len);
str[len] = '\0';
return *this;
}
void Value::SetBooleanArray(llvm::ArrayRef<int> value) {
// handle type change
if (NT_Value::type != NT_BOOLEAN_ARRAY) {