Only dereference interpolator cache WeakReference once

Fixes #432
diff --git a/lottie/src/main/java/com/airbnb/lottie/Keyframe.java b/lottie/src/main/java/com/airbnb/lottie/Keyframe.java
index df352b8..91bddfd 100644
--- a/lottie/src/main/java/com/airbnb/lottie/Keyframe.java
+++ b/lottie/src/main/java/com/airbnb/lottie/Keyframe.java
@@ -151,12 +151,13 @@
           cp2.y = MiscUtils.clamp(cp2.y, -MAX_CP_VALUE, MAX_CP_VALUE);
           int hash = Utils.hashFor(cp1.x, cp1.y, cp2.x, cp2.y);
           WeakReference<Interpolator> interpolatorRef = pathInterpolatorCache.get(hash);
-          if (interpolatorRef == null || interpolatorRef.get() == null) {
+          if (interpolatorRef != null) {
+            interpolator = interpolatorRef.get();
+          }
+          if (interpolatorRef == null || interpolator == null) {
             interpolator = PathInterpolatorCompat.create(
                 cp1.x / scale, cp1.y / scale, cp2.x / scale, cp2.y / scale);
             pathInterpolatorCache.put(hash, new WeakReference<>(interpolator));
-          } else {
-            interpolator = pathInterpolatorCache.get(hash).get();
           }
 
         } else {