@@ -416,15 +416,17 @@ open class FDWaveformView: UIView {
416416 let imageSize = CGSize ( width: widthInPixels, height: heightInPixels)
417417 let renderFormat = FDWaveformRenderFormat ( type: waveformRenderType, wavesColor: . black, scale: desiredImageScale)
418418
419- let waveformRenderOperation = FDWaveformRenderOperation ( audioContext: audioContext, imageSize: imageSize, sampleRange: renderSamples, format: renderFormat) { image in
419+ let waveformRenderOperation = FDWaveformRenderOperation ( audioContext: audioContext, imageSize: imageSize, sampleRange: renderSamples, format: renderFormat) { [ weak self ] image in
420420 DispatchQueue . main. async {
421- self . renderForCurrentAssetFailed = ( image == nil )
422- self . waveformImage = image
423- self . renderingInProgress = false
424- self . cachedWaveformRenderOperation = self . inProgressWaveformRenderOperation
425- self . inProgressWaveformRenderOperation = nil
426- self . setNeedsLayout ( )
427- self . delegate? . waveformViewDidRender ? ( self )
421+ guard let strongSelf = self else { return }
422+
423+ strongSelf. renderForCurrentAssetFailed = ( image == nil )
424+ strongSelf. waveformImage = image
425+ strongSelf. renderingInProgress = false
426+ strongSelf. cachedWaveformRenderOperation = self ? . inProgressWaveformRenderOperation
427+ strongSelf. inProgressWaveformRenderOperation = nil
428+ strongSelf. setNeedsLayout ( )
429+ strongSelf. delegate? . waveformViewDidRender ? ( strongSelf)
428430 }
429431 }
430432 self . inProgressWaveformRenderOperation = waveformRenderOperation
0 commit comments