Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(11)

Side by Side Diff: third_party/WebKit/Source/platform/audio/AudioArray.h

Issue 2803073002: Convert RELEASE_ASSERT()/ASSERT(...) to CHECK()/DCHECK_op(...) in platform/audio (Closed)
Patch Set: Created 3 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « no previous file | third_party/WebKit/Source/platform/audio/AudioBus.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 5 * modification, are permitted provided that the following conditions
6 * are met: 6 * are met:
7 * 7 *
8 * 1. Redistributions of source code must retain the above copyright 8 * 1. 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 * 2. Redistributions in binary form must reproduce the above copyright 10 * 2. Redistributions in binary form must reproduce the above copyright
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
51 51
52 ~AudioArray() { WTF::Partitions::fastFree(m_allocation); } 52 ~AudioArray() { WTF::Partitions::fastFree(m_allocation); }
53 53
54 // It's OK to call allocate() multiple times, but data will *not* be copied 54 // It's OK to call allocate() multiple times, but data will *not* be copied
55 // from an initial allocation if re-allocated. Allocations are 55 // from an initial allocation if re-allocated. Allocations are
56 // zero-initialized. 56 // zero-initialized.
57 void allocate(size_t n) { 57 void allocate(size_t n) {
58 // Although n is a size_t, its true limit is max unsigned because we use 58 // Although n is a size_t, its true limit is max unsigned because we use
59 // unsigned in zeroRange() and copyToRange(). Also check for integer 59 // unsigned in zeroRange() and copyToRange(). Also check for integer
60 // overflow. 60 // overflow.
61 RELEASE_ASSERT(n <= std::numeric_limits<unsigned>::max() / sizeof(T)); 61 CHECK_LE(n, std::numeric_limits<unsigned>::max() / sizeof(T));
62 62
63 unsigned initialSize = sizeof(T) * n; 63 unsigned initialSize = sizeof(T) * n;
64 64
65 #if USE(WEBAUDIO_FFMPEG) || USE(WEBAUDIO_OPENMAX_DL_FFT) 65 #if USE(WEBAUDIO_FFMPEG) || USE(WEBAUDIO_OPENMAX_DL_FFT)
66 const size_t alignment = 32; 66 const size_t alignment = 32;
67 #else 67 #else
68 const size_t alignment = 16; 68 const size_t alignment = 16;
69 #endif 69 #endif
70 70
71 if (m_allocation) 71 if (m_allocation)
72 WTF::Partitions::fastFree(m_allocation); 72 WTF::Partitions::fastFree(m_allocation);
73 73
74 bool isAllocationGood = false; 74 bool isAllocationGood = false;
75 75
76 while (!isAllocationGood) { 76 while (!isAllocationGood) {
77 // Initially we try to allocate the exact size, but if it's not aligned 77 // Initially we try to allocate the exact size, but if it's not aligned
78 // then we'll have to reallocate and from then on allocate extra. 78 // then we'll have to reallocate and from then on allocate extra.
79 static size_t extraAllocationBytes = 0; 79 static size_t extraAllocationBytes = 0;
80 80
81 // Again, check for integer overflow. 81 // Again, check for integer overflow.
82 RELEASE_ASSERT(initialSize + extraAllocationBytes >= initialSize); 82 CHECK_GE(initialSize + extraAllocationBytes, initialSize);
83 83
84 T* allocation = static_cast<T*>(WTF::Partitions::fastMalloc( 84 T* allocation = static_cast<T*>(WTF::Partitions::fastMalloc(
85 initialSize + extraAllocationBytes, 85 initialSize + extraAllocationBytes,
86 WTF_HEAP_PROFILER_TYPE_NAME(AudioArray<T>))); 86 WTF_HEAP_PROFILER_TYPE_NAME(AudioArray<T>)));
87 RELEASE_ASSERT(allocation); 87 CHECK(allocation);
Raymond Toy 2017/04/06 17:48:16 Comment: This should have been done in the previou
hongchan 2017/04/06 17:52:27 I didn't want to run a script only to take care of
88 88
89 T* alignedData = alignedAddress(allocation, alignment); 89 T* alignedData = alignedAddress(allocation, alignment);
90 90
91 if (alignedData == allocation || extraAllocationBytes == alignment) { 91 if (alignedData == allocation || extraAllocationBytes == alignment) {
92 m_allocation = allocation; 92 m_allocation = allocation;
93 m_alignedData = alignedData; 93 m_alignedData = alignedData;
94 m_size = n; 94 m_size = n;
95 isAllocationGood = true; 95 isAllocationGood = true;
96 zero(); 96 zero();
97 } else { 97 } else {
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after
152 T* m_alignedData; 152 T* m_alignedData;
153 size_t m_size; 153 size_t m_size;
154 }; 154 };
155 155
156 typedef AudioArray<float> AudioFloatArray; 156 typedef AudioArray<float> AudioFloatArray;
157 typedef AudioArray<double> AudioDoubleArray; 157 typedef AudioArray<double> AudioDoubleArray;
158 158
159 } // namespace blink 159 } // namespace blink
160 160
161 #endif // AudioArray_h 161 #endif // AudioArray_h
OLDNEW
« no previous file with comments | « no previous file | third_party/WebKit/Source/platform/audio/AudioBus.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698