@@ -114,7 +114,8 @@ absl::StatusOr<CelValue> ValueToCelValue(const Value& value,
114114 case Value::kBoolValue :
115115 return CelValue::CreateBool (value.bool_value ());
116116 case Value::kBytesValue :
117- return CelValue::CreateBytes (CelValue::BytesHolder (&value.bytes_value ()));
117+ return CelValue::CreateBytes (CelValue::BytesHolder (
118+ arena->Create <std::string>(arena, value.bytes_value ())));
118119 case Value::kDoubleValue :
119120 return CelValue::CreateDouble (value.double_value ());
120121 case Value::kEnumValue :
@@ -146,14 +147,18 @@ absl::StatusOr<CelValue> ValueToCelValue(const Value& value,
146147 }
147148 case Value::kNullValue :
148149 return CelValue::CreateNull ();
149- case Value::kObjectValue :
150- return CelProtoWrapper::CreateMessage (&value.object_value (), arena);
150+ case Value::kObjectValue : {
151+ auto cel_value =
152+ CelProtoWrapper::CreateMessage (&value.object_value (), arena);
153+ if (cel_value.IsError ()) return *cel_value.ErrorOrDie ();
154+ return cel_value;
155+ }
151156 case Value::kStringValue :
152- return CelValue::CreateString (
153- CelValue::StringHolder (& value.string_value ()));
157+ return CelValue::CreateString (CelValue::StringHolder (
158+ arena-> Create <std::string>(arena, value.string_value () )));
154159 case Value::kTypeValue :
155- return CelValue::CreateCelType (
156- CelValue::CelTypeHolder (& value.type_value ()));
160+ return CelValue::CreateCelType (CelValue::CelTypeHolder (
161+ arena-> Create <std::string>(arena, value.type_value () )));
157162 case Value::kUint64Value :
158163 return CelValue::CreateUint64 (value.uint64_value ());
159164 case Value::KIND_NOT_SET:
0 commit comments