OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2010 Google Inc. All rights reserved. | 2 * Copyright (C) 2010 Google Inc. All rights reserved. |
3 * | 3 * |
4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
5 * modification, are permitted provided that the following conditions are | 5 * modification, are permitted provided that the following conditions are |
6 * met: | 6 * met: |
7 * | 7 * |
8 * * Redistributions of source code must retain the above copyright | 8 * * Redistributions of source code must retain the above copyright |
9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
10 * * Redistributions in binary form must reproduce the above | 10 * * Redistributions in binary form must reproduce the above |
(...skipping 109 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
120 data_buffer_size_ = byte_length; | 120 data_buffer_size_ = byte_length; |
121 wire_data.CopyTo(reinterpret_cast<UChar*>(data_buffer_.get()), 0, | 121 wire_data.CopyTo(reinterpret_cast<UChar*>(data_buffer_.get()), 0, |
122 wire_data.length()); | 122 wire_data.length()); |
123 } | 123 } |
124 | 124 |
125 SerializedScriptValue::~SerializedScriptValue() { | 125 SerializedScriptValue::~SerializedScriptValue() { |
126 // If the allocated memory was not registered before, then this class is | 126 // If the allocated memory was not registered before, then this class is |
127 // likely used in a context other than Worker's onmessage environment and the | 127 // likely used in a context other than Worker's onmessage environment and the |
128 // presence of current v8 context is not guaranteed. Avoid calling v8 then. | 128 // presence of current v8 context is not guaranteed. Avoid calling v8 then. |
129 if (has_registered_external_allocation_) { | 129 if (has_registered_external_allocation_) { |
130 ASSERT(v8::Isolate::GetCurrent()); | 130 DCHECK(v8::Isolate::GetCurrent()); |
131 v8::Isolate::GetCurrent()->AdjustAmountOfExternalAllocatedMemory( | 131 v8::Isolate::GetCurrent()->AdjustAmountOfExternalAllocatedMemory( |
132 -static_cast<int64_t>(DataLengthInBytes())); | 132 -static_cast<int64_t>(DataLengthInBytes())); |
133 } | 133 } |
134 } | 134 } |
135 | 135 |
136 PassRefPtr<SerializedScriptValue> SerializedScriptValue::NullValue() { | 136 PassRefPtr<SerializedScriptValue> SerializedScriptValue::NullValue() { |
137 // UChar rather than uint8_t here to get host endian behavior. | 137 // UChar rather than uint8_t here to get host endian behavior. |
138 static const UChar kNullData[] = {0xff09, 0x3000}; | 138 static const UChar kNullData[] = {0xff09, 0x3000}; |
139 return Create(reinterpret_cast<const char*>(kNullData), sizeof(kNullData)); | 139 return Create(reinterpret_cast<const char*>(kNullData), sizeof(kNullData)); |
140 } | 140 } |
(...skipping 321 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
462 // Only (re)register allocation cost for transferables if this | 462 // Only (re)register allocation cost for transferables if this |
463 // SerializedScriptValue has explicitly unregistered them before. | 463 // SerializedScriptValue has explicitly unregistered them before. |
464 if (array_buffer_contents_array_ && | 464 if (array_buffer_contents_array_ && |
465 transferables_need_external_allocation_registration_) { | 465 transferables_need_external_allocation_registration_) { |
466 for (auto& buffer : *array_buffer_contents_array_) | 466 for (auto& buffer : *array_buffer_contents_array_) |
467 buffer.RegisterExternalAllocationWithCurrentContext(); | 467 buffer.RegisterExternalAllocationWithCurrentContext(); |
468 } | 468 } |
469 } | 469 } |
470 | 470 |
471 } // namespace blink | 471 } // namespace blink |
OLD | NEW |