@@ -3283,7 +3283,6 @@ struct ValueDeserializer::PrivateData { |
3283 | 3283 | : isolate(i), deserializer(i, data, delegate) {} |
3284 | 3284 | i::Isolate* isolate; |
3285 | 3285 | i::ValueDeserializer deserializer; |
3286 | | - bool has_aborted = false; |
3287 | 3286 | bool supports_legacy_wire_format = false; |
3288 | 3287 | }; |
3289 | 3288 |
|
@@ -3293,16 +3292,8 @@ ValueDeserializer::ValueDeserializer(Isolate* isolate, const uint8_t* data, |
3293 | 3292 |
|
3294 | 3293 | ValueDeserializer::ValueDeserializer(Isolate* isolate, const uint8_t* data, |
3295 | 3294 | size_t size, Delegate* delegate) { |
3296 | | - if (base::IsValueInRangeForNumericType<int>(size)) { |
3297 | | - private_ = new PrivateData( |
3298 | | - reinterpret_cast<i::Isolate*>(isolate), |
3299 | | - base::Vector<const uint8_t>(data, static_cast<int>(size)), delegate); |
3300 | | - } else { |
3301 | | - private_ = |
3302 | | - new PrivateData(reinterpret_cast<i::Isolate*>(isolate), |
3303 | | - base::Vector<const uint8_t>(nullptr, 0), nullptr); |
3304 | | - private_->has_aborted = true; |
3305 | | - } |
| 3295 | + private_ = new PrivateData(reinterpret_cast<i::Isolate*>(isolate), |
| 3296 | + base::Vector<const uint8_t>(data, size), delegate); |
3306 | 3297 | } |
3307 | 3298 |
|
3308 | 3299 | ValueDeserializer::~ValueDeserializer() { delete private_; } |
@@ -3312,15 +3303,6 @@ Maybe<bool> ValueDeserializer::ReadHeader(Local<Context> context) { |
3312 | 3303 | ENTER_V8_NO_SCRIPT(isolate, context, ValueDeserializer, ReadHeader, |
3313 | 3304 | Nothing<bool>(), i::HandleScope); |
3314 | 3305 |
|
3315 | | - // We could have aborted during the constructor. |
3316 | | - // If so, ReadHeader is where we report it. |
3317 | | - if (private_->has_aborted) { |
3318 | | - isolate->Throw(*isolate->factory()->NewError( |
3319 | | - i::MessageTemplate::kDataCloneDeserializationError)); |
3320 | | - has_pending_exception = true; |
3321 | | - RETURN_ON_FAILED_EXECUTION_PRIMITIVE(bool); |
3322 | | - } |
3323 | | - |
3324 | 3306 | bool read_header = false; |
3325 | 3307 | has_pending_exception = !private_->deserializer.ReadHeader().To(&read_header); |
3326 | 3308 | RETURN_ON_FAILED_EXECUTION_PRIMITIVE(bool); |
@@ -3344,12 +3326,10 @@ void ValueDeserializer::SetSupportsLegacyWireFormat( |
3344 | 3326 | } |
3345 | 3327 |
|
3346 | 3328 | uint32_t ValueDeserializer::GetWireFormatVersion() const { |
3347 | | - CHECK(!private_->has_aborted); |
3348 | 3329 | return private_->deserializer.GetWireFormatVersion(); |
3349 | 3330 | } |
3350 | 3331 |
|
3351 | 3332 | MaybeLocal<Value> ValueDeserializer::ReadValue(Local<Context> context) { |
3352 | | - CHECK(!private_->has_aborted); |
3353 | 3333 | PREPARE_FOR_EXECUTION(context, ValueDeserializer, ReadValue, Value); |
3354 | 3334 | i::MaybeHandle<i::Object> result; |
3355 | 3335 | if (GetWireFormatVersion() > 0) { |
@@ -3366,14 +3346,12 @@ MaybeLocal<Value> ValueDeserializer::ReadValue(Local<Context> context) { |
3366 | 3346 |
|
3367 | 3347 | void ValueDeserializer::TransferArrayBuffer(uint32_t transfer_id, |
3368 | 3348 | Local<ArrayBuffer> array_buffer) { |
3369 | | - CHECK(!private_->has_aborted); |
3370 | 3349 | private_->deserializer.TransferArrayBuffer(transfer_id, |
3371 | 3350 | Utils::OpenHandle(*array_buffer)); |
3372 | 3351 | } |
3373 | 3352 |
|
3374 | 3353 | void ValueDeserializer::TransferSharedArrayBuffer( |
3375 | 3354 | uint32_t transfer_id, Local<SharedArrayBuffer> shared_array_buffer) { |
3376 | | - CHECK(!private_->has_aborted); |
3377 | 3355 | private_->deserializer.TransferArrayBuffer( |
3378 | 3356 | transfer_id, Utils::OpenHandle(*shared_array_buffer)); |
3379 | 3357 | } |
|