OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2004, 2006, 2008 Apple Inc. All rights reserved. | 2 * Copyright (C) 2004, 2006, 2008 Apple Inc. All rights reserved. |
3 * Copyright (C) 2005-2007 Alexey Proskuryakov <ap@webkit.org> | 3 * Copyright (C) 2005-2007 Alexey Proskuryakov <ap@webkit.org> |
4 * Copyright (C) 2007, 2008 Julien Chaffraix <jchaffraix@webkit.org> | 4 * Copyright (C) 2007, 2008 Julien Chaffraix <jchaffraix@webkit.org> |
5 * Copyright (C) 2008, 2011 Google Inc. All rights reserved. | 5 * Copyright (C) 2008, 2011 Google Inc. All rights reserved. |
6 * Copyright (C) 2012 Intel Corporation | 6 * Copyright (C) 2012 Intel Corporation |
7 * | 7 * |
8 * This library is free software; you can redistribute it and/or | 8 * This library is free software; you can redistribute it and/or |
9 * modify it under the terms of the GNU Lesser General Public | 9 * modify it under the terms of the GNU Lesser General Public |
10 * License as published by the Free Software Foundation; either | 10 * License as published by the Free Software Foundation; either |
(...skipping 346 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
357 | 357 |
358 DOMArrayBuffer* XMLHttpRequest::responseArrayBuffer() | 358 DOMArrayBuffer* XMLHttpRequest::responseArrayBuffer() |
359 { | 359 { |
360 ASSERT(m_responseTypeCode == ResponseTypeArrayBuffer); | 360 ASSERT(m_responseTypeCode == ResponseTypeArrayBuffer); |
361 | 361 |
362 if (m_error || m_state != DONE) | 362 if (m_error || m_state != DONE) |
363 return nullptr; | 363 return nullptr; |
364 | 364 |
365 if (!m_responseArrayBuffer) { | 365 if (!m_responseArrayBuffer) { |
366 if (m_binaryResponseBuilder && m_binaryResponseBuilder->size()) { | 366 if (m_binaryResponseBuilder && m_binaryResponseBuilder->size()) { |
367 RefPtr<DOMArrayBuffer> buffer = DOMArrayBuffer::createUninitialized(
m_binaryResponseBuilder->size(), 1); | 367 RefPtr<DOMArrayBuffer> buffer = DOMArrayBuffer::createUninitializedO
rNull(m_binaryResponseBuilder->size(), 1); |
368 if (!m_binaryResponseBuilder->getAsBytes(buffer->data(), buffer->byt
eLength())) { | 368 if (!buffer || !m_binaryResponseBuilder->getAsBytes(buffer->data(),
buffer->byteLength())) { |
369 // m_binaryResponseBuilder failed to allocate an ArrayBuffer. | 369 // m_binaryResponseBuilder failed to allocate an ArrayBuffer. |
370 // We need to crash the renderer since there's no way defined in | 370 // We need to crash the renderer since there's no way defined in |
371 // the spec to tell this to the user. | 371 // the spec to tell this to the user. |
372 CRASH(); | 372 CRASH(); |
373 } | 373 } |
374 m_responseArrayBuffer = buffer.release(); | 374 m_responseArrayBuffer = buffer.release(); |
375 m_binaryResponseBuilder.clear(); | 375 m_binaryResponseBuilder.clear(); |
376 } else { | 376 } else { |
377 m_responseArrayBuffer = DOMArrayBuffer::create(nullptr, 0); | 377 m_responseArrayBuffer = DOMArrayBuffer::createOrNull(nullptr, 0); |
| 378 RELEASE_ASSERT(m_responseArrayBuffer); // size 0 -> should never fai
l internal buffer alloc |
378 } | 379 } |
379 } | 380 } |
380 | 381 |
381 return m_responseArrayBuffer.get(); | 382 return m_responseArrayBuffer.get(); |
382 } | 383 } |
383 | 384 |
384 Stream* XMLHttpRequest::responseLegacyStream() | 385 Stream* XMLHttpRequest::responseLegacyStream() |
385 { | 386 { |
386 ASSERT(m_responseTypeCode == ResponseTypeLegacyStream); | 387 ASSERT(m_responseTypeCode == ResponseTypeLegacyStream); |
387 | 388 |
(...skipping 1326 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1714 visitor->trace(m_responseDocumentParser); | 1715 visitor->trace(m_responseDocumentParser); |
1715 visitor->trace(m_progressEventThrottle); | 1716 visitor->trace(m_progressEventThrottle); |
1716 visitor->trace(m_upload); | 1717 visitor->trace(m_upload); |
1717 visitor->trace(m_blobLoader); | 1718 visitor->trace(m_blobLoader); |
1718 XMLHttpRequestEventTarget::trace(visitor); | 1719 XMLHttpRequestEventTarget::trace(visitor); |
1719 DocumentParserClient::trace(visitor); | 1720 DocumentParserClient::trace(visitor); |
1720 ActiveDOMObject::trace(visitor); | 1721 ActiveDOMObject::trace(visitor); |
1721 } | 1722 } |
1722 | 1723 |
1723 } // namespace blink | 1724 } // namespace blink |
OLD | NEW |