diff --git a/libcef/common/values_impl.cc b/libcef/common/values_impl.cc index 8cbb36ef2..98e8216c2 100644 --- a/libcef/common/values_impl.cc +++ b/libcef/common/values_impl.cc @@ -493,8 +493,8 @@ CefRefPtr CefBinaryValue::Create(const void* data, return nullptr; } - return new CefBinaryValueImpl(static_cast(const_cast(data)), - data_size); + const auto ptr = static_cast(data); + return new CefBinaryValueImpl(base::make_span(ptr, data_size)); } // static @@ -525,12 +525,11 @@ CefBinaryValueImpl::CefBinaryValueImpl(base::Value* value, bool will_delete) will_delete ? kOwnerWillDelete : kOwnerNoDelete, nullptr) {} -CefBinaryValueImpl::CefBinaryValueImpl(char* data, size_t data_size) - : CefBinaryValueImpl( - new base::Value(std::vector(data, data + data_size)), - nullptr, - kOwnerWillDelete, - nullptr) {} +CefBinaryValueImpl::CefBinaryValueImpl(base::span value) + : CefBinaryValueImpl(new base::Value(value), + nullptr, + kOwnerWillDelete, + nullptr) {} base::Value CefBinaryValueImpl::CopyValue() { CEF_VALUE_VERIFY_RETURN(false, base::Value()); diff --git a/libcef/common/values_impl.h b/libcef/common/values_impl.h index db43299ae..fd0eadbc2 100644 --- a/libcef/common/values_impl.h +++ b/libcef/common/values_impl.h @@ -151,7 +151,7 @@ class CefBinaryValueImpl : public CefValueBase { CefBinaryValueImpl(base::Value* value, bool will_delete); // The data will always be copied. - CefBinaryValueImpl(char* data, size_t data_size); + explicit CefBinaryValueImpl(base::span value); CefBinaryValueImpl(const CefBinaryValueImpl&) = delete; CefBinaryValueImpl& operator=(const CefBinaryValueImpl&) = delete;