| @@ -23699,7 +23699,11 @@ AudioSampleBuffer::AudioSampleBuffer (float** dataToReferTo, | |||||
| { | { | ||||
| jassert (numChannels_ > 0); | jassert (numChannels_ > 0); | ||||
| channels = (float**) juce_malloc ((numChannels_ + 1) * sizeof (float*)); | |||||
| // (try to avoid doing a malloc here, as that'll blow up things like Pro-Tools) | |||||
| if (numChannels_ < numElementsInArray (preallocatedChannelSpace)) | |||||
| channels = (float**) preallocatedChannelSpace; | |||||
| else | |||||
| channels = (float**) juce_malloc ((numChannels_ + 1) * sizeof (float*)); | |||||
| for (int i = 0; i < numChannels_; ++i) | for (int i = 0; i < numChannels_; ++i) | ||||
| { | { | ||||
| @@ -23788,7 +23792,9 @@ const AudioSampleBuffer& AudioSampleBuffer::operator= (const AudioSampleBuffer& | |||||
| AudioSampleBuffer::~AudioSampleBuffer() throw() | AudioSampleBuffer::~AudioSampleBuffer() throw() | ||||
| { | { | ||||
| juce_free (allocatedData); | juce_free (allocatedData); | ||||
| juce_free (channels); | |||||
| if (channels != (float**) preallocatedChannelSpace) | |||||
| juce_free (channels); | |||||
| } | } | ||||
| float* AudioSampleBuffer::getSampleData (const int channelNumber, | float* AudioSampleBuffer::getSampleData (const int channelNumber, | ||||
| @@ -27182,6 +27182,7 @@ private: | |||||
| int numChannels, size, allocatedBytes; | int numChannels, size, allocatedBytes; | ||||
| float** channels; | float** channels; | ||||
| float* allocatedData; | float* allocatedData; | ||||
| float* preallocatedChannelSpace [32]; | |||||
| }; | }; | ||||
| #endif // __JUCE_AUDIOSAMPLEBUFFER_JUCEHEADER__ | #endif // __JUCE_AUDIOSAMPLEBUFFER_JUCEHEADER__ | ||||
| @@ -45853,9 +45854,6 @@ private: | |||||
| #endif | #endif | ||||
| #ifndef __JUCE_TOOLBARITEMCOMPONENT_JUCEHEADER__ | #ifndef __JUCE_TOOLBARITEMCOMPONENT_JUCEHEADER__ | ||||
| #endif | |||||
| #ifndef __JUCE_TREEVIEW_JUCEHEADER__ | |||||
| #endif | #endif | ||||
| #ifndef __JUCE_TEXTEDITOR_JUCEHEADER__ | #ifndef __JUCE_TEXTEDITOR_JUCEHEADER__ | ||||
| @@ -46649,6 +46647,9 @@ private: | |||||
| #endif | #endif | ||||
| #ifndef __JUCE_LABEL_JUCEHEADER__ | #ifndef __JUCE_LABEL_JUCEHEADER__ | ||||
| #endif | |||||
| #ifndef __JUCE_TREEVIEW_JUCEHEADER__ | |||||
| #endif | #endif | ||||
| #ifndef __JUCE_SLIDERPROPERTYCOMPONENT_JUCEHEADER__ | #ifndef __JUCE_SLIDERPROPERTYCOMPONENT_JUCEHEADER__ | ||||
| @@ -71,7 +71,11 @@ AudioSampleBuffer::AudioSampleBuffer (float** dataToReferTo, | |||||
| { | { | ||||
| jassert (numChannels_ > 0); | jassert (numChannels_ > 0); | ||||
| channels = (float**) juce_malloc ((numChannels_ + 1) * sizeof (float*)); | |||||
| // (try to avoid doing a malloc here, as that'll blow up things like Pro-Tools) | |||||
| if (numChannels_ < numElementsInArray (preallocatedChannelSpace)) | |||||
| channels = (float**) preallocatedChannelSpace; | |||||
| else | |||||
| channels = (float**) juce_malloc ((numChannels_ + 1) * sizeof (float*)); | |||||
| for (int i = 0; i < numChannels_; ++i) | for (int i = 0; i < numChannels_; ++i) | ||||
| { | { | ||||
| @@ -160,7 +164,9 @@ const AudioSampleBuffer& AudioSampleBuffer::operator= (const AudioSampleBuffer& | |||||
| AudioSampleBuffer::~AudioSampleBuffer() throw() | AudioSampleBuffer::~AudioSampleBuffer() throw() | ||||
| { | { | ||||
| juce_free (allocatedData); | juce_free (allocatedData); | ||||
| juce_free (channels); | |||||
| if (channels != (float**) preallocatedChannelSpace) | |||||
| juce_free (channels); | |||||
| } | } | ||||
| float* AudioSampleBuffer::getSampleData (const int channelNumber, | float* AudioSampleBuffer::getSampleData (const int channelNumber, | ||||
| @@ -409,6 +409,7 @@ private: | |||||
| int numChannels, size, allocatedBytes; | int numChannels, size, allocatedBytes; | ||||
| float** channels; | float** channels; | ||||
| float* allocatedData; | float* allocatedData; | ||||
| float* preallocatedChannelSpace [32]; | |||||
| }; | }; | ||||