diff options
Diffstat (limited to 'src/com/android/gallery3d/filtershow/pipeline/SharedBuffer.java')
-rw-r--r-- | src/com/android/gallery3d/filtershow/pipeline/SharedBuffer.java | 21 |
1 files changed, 7 insertions, 14 deletions
diff --git a/src/com/android/gallery3d/filtershow/pipeline/SharedBuffer.java b/src/com/android/gallery3d/filtershow/pipeline/SharedBuffer.java index 587174668..98e69f60e 100644 --- a/src/com/android/gallery3d/filtershow/pipeline/SharedBuffer.java +++ b/src/com/android/gallery3d/filtershow/pipeline/SharedBuffer.java @@ -17,7 +17,6 @@ package com.android.gallery3d.filtershow.pipeline; import android.graphics.Bitmap; -import android.util.Log; public class SharedBuffer { @@ -26,15 +25,15 @@ public class SharedBuffer { private volatile Buffer mProducer = null; private volatile Buffer mConsumer = null; private volatile Buffer mIntermediate = null; - private volatile boolean mNeedsSwap = false; + private volatile boolean mNeedsSwap = false; private volatile boolean mNeedsRepaint = true; - public SharedBuffer() { - } - - public synchronized void setProducer(Bitmap producer) { - mProducer = new Buffer(producer); + public void setProducer(Bitmap producer) { + Buffer buffer = new Buffer(producer); + synchronized (this) { + mProducer = buffer; + } } public synchronized Buffer getProducer() { @@ -46,22 +45,16 @@ public class SharedBuffer { } public synchronized void swapProducer() { - if (mProducer != null) { - mProducer.sync(); - } Buffer intermediate = mIntermediate; mIntermediate = mProducer; mProducer = intermediate; mNeedsSwap = true; } - public synchronized void swapConsumer() { + public synchronized void swapConsumerIfNeeded() { if (!mNeedsSwap) { return; } - if (mConsumer != null) { - mConsumer.sync(); - } Buffer intermediate = mIntermediate; mIntermediate = mConsumer; mConsumer = intermediate; |