Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 3cf17ad2 authored by Philip P. Moltmann's avatar Philip P. Moltmann
Browse files

Syncronize renderPage vs. onServiceDisconnected

An async renderPage request might be in progress while the service is
getting disconnected.

Fixes: 29639740
Change-Id: I8a33e5fba96dd76ecb1e14d0e3a26334eb8965a5
parent bb7c5aca
Loading
Loading
Loading
Loading
+9 −3
Original line number Diff line number Diff line
@@ -838,9 +838,15 @@ public final class PageContentRepository {

                    try (ParcelFileDescriptor source = pipe[0]) {
                        try (ParcelFileDescriptor destination = pipe[1]) {

                            mRenderer.renderPage(mPageIndex, bitmap.getWidth(), bitmap.getHeight(),
                                    mRenderSpec.printAttributes, destination);
                            synchronized (mLock) {
                                if (mRenderer != null) {
                                    mRenderer.renderPage(mPageIndex, bitmap.getWidth(),
                                            bitmap.getHeight(), mRenderSpec.printAttributes,
                                            destination);
                                } else {
                                    throw new IllegalStateException("Renderer is disconnected");
                                }
                            }
                        }

                        BitmapSerializeUtils.readBitmapPixels(bitmap, source);