diff options
author | Alan Newberger <alann@google.com> | 2014-11-12 22:36:10 +0000 |
---|---|---|
committer | Android Git Automerger <android-git-automerger@android.com> | 2014-11-12 22:36:10 +0000 |
commit | 820d09d658a629f204563c469899a98ce74cddaa (patch) | |
tree | 18cf4be2e4aeb49b5cb8b8b497c84784d26783cb | |
parent | f321693faae671114405697a066da29e99a87692 (diff) | |
parent | 2f7d83a1581be77878112d11046e3efd642e8e16 (diff) | |
download | glide-820d09d658a629f204563c469899a98ce74cddaa.tar.gz |
am 2f7d83a1: Synchronize factory key getters in Glide
* commit '2f7d83a1581be77878112d11046e3efd642e8e16':
Synchronize factory key getters in Glide
-rw-r--r-- | library/src/main/java/com/bumptech/glide/load/resource/transcode/TranscoderFactory.java | 7 | ||||
-rw-r--r-- | library/src/main/java/com/bumptech/glide/provider/DataLoadProviderFactory.java | 7 |
2 files changed, 10 insertions, 4 deletions
diff --git a/library/src/main/java/com/bumptech/glide/load/resource/transcode/TranscoderFactory.java b/library/src/main/java/com/bumptech/glide/load/resource/transcode/TranscoderFactory.java index 4dd76e3c..83acb5cd 100644 --- a/library/src/main/java/com/bumptech/glide/load/resource/transcode/TranscoderFactory.java +++ b/library/src/main/java/com/bumptech/glide/load/resource/transcode/TranscoderFactory.java @@ -70,8 +70,11 @@ public class TranscoderFactory { if (decodedClass.equals(transcodedClass)) { return UnitTranscoder.get(); } - GET_KEY.set(decodedClass, transcodedClass); - ResourceTranscoder<Z, R> result = factories.get(GET_KEY); + ResourceTranscoder<Z, R> result; + synchronized (GET_KEY) { + GET_KEY.set(decodedClass, transcodedClass); + result = factories.get(GET_KEY); + } if (result == null) { throw new IllegalArgumentException("No transcoder registered for " + decodedClass + " and " + transcodedClass); diff --git a/library/src/main/java/com/bumptech/glide/provider/DataLoadProviderFactory.java b/library/src/main/java/com/bumptech/glide/provider/DataLoadProviderFactory.java index 019b397e..63d22a32 100644 --- a/library/src/main/java/com/bumptech/glide/provider/DataLoadProviderFactory.java +++ b/library/src/main/java/com/bumptech/glide/provider/DataLoadProviderFactory.java @@ -69,8 +69,11 @@ public class DataLoadProviderFactory { @SuppressWarnings("unchecked") public <T, Z> DataLoadProvider<T, Z> get(Class<T> dataClass, Class<Z> resourceClass) { - GET_KEY.set(dataClass, resourceClass); - DataLoadProvider<T, Z> result = providers.get(GET_KEY); + DataLoadProvider<T, Z> result; + synchronized (GET_KEY) { + GET_KEY.set(dataClass, resourceClass); + result = providers.get(GET_KEY); + } if (result == null) { result = EmptyDataLoadProvider.get(); } |