@@ -420,15 +420,17 @@ open class FDWaveformView: UIView {
420420 let imageSize = CGSize ( width: widthInPixels, height: heightInPixels)
421421 let renderFormat = FDWaveformRenderFormat ( type: waveformRenderType, wavesColor: . black, scale: desiredImageScale)
422422
423- let waveformRenderOperation = FDWaveformRenderOperation ( audioContext: audioContext, imageSize: imageSize, sampleRange: renderSamples, format: renderFormat) { image in
423+ let waveformRenderOperation = FDWaveformRenderOperation ( audioContext: audioContext, imageSize: imageSize, sampleRange: renderSamples, format: renderFormat) { [ weak self ] image in
424424 DispatchQueue . main. async {
425- self . renderForCurrentAssetFailed = ( image == nil )
426- self . waveformImage = image
427- self . renderingInProgress = false
428- self . cachedWaveformRenderOperation = self . inProgressWaveformRenderOperation
429- self . inProgressWaveformRenderOperation = nil
430- self . setNeedsLayout ( )
431- self . delegate? . waveformViewDidRender ? ( self )
425+ guard let strongSelf = self else { return }
426+
427+ strongSelf. renderForCurrentAssetFailed = ( image == nil )
428+ strongSelf. waveformImage = image
429+ strongSelf. renderingInProgress = false
430+ strongSelf. cachedWaveformRenderOperation = self ? . inProgressWaveformRenderOperation
431+ strongSelf. inProgressWaveformRenderOperation = nil
432+ strongSelf. setNeedsLayout ( )
433+ strongSelf. delegate? . waveformViewDidRender ? ( strongSelf)
432434 }
433435 }
434436 self . inProgressWaveformRenderOperation = waveformRenderOperation
0 commit comments