nm$c.java 7.73 KB
import com.google.common.base.Equivalence;
import com.google.common.base.Function;
import com.google.common.base.Preconditions;
import com.google.common.collect.MapMaker.d;
import java.util.Queue;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.atomic.AtomicReferenceArray;

final class nm$c<K, V>
  extends pc.m<K, V>
{
  nm$c(pc<K, V> parampc, int paramInt1, int paramInt2)
  {
    super(parampc, paramInt1, paramInt2);
  }
  
  /* Error */
  private V a(K paramK, int paramInt, pc.l<K, V> paraml, nm.e<K, V> parame)
    throws ExecutionException
  {
    // Byte code:
    //   0: aconst_null
    //   1: astore 9
    //   3: aconst_null
    //   4: astore 10
    //   6: invokestatic 25	java/lang/System:nanoTime	()J
    //   9: pop2
    //   10: aload_3
    //   11: monitorenter
    //   12: aload 4
    //   14: aload_1
    //   15: invokevirtual 30	nm$e:a	(Ljava/lang/Object;)Ljava/lang/Object;
    //   18: astore 9
    //   20: aload 9
    //   22: astore 10
    //   24: invokestatic 25	java/lang/System:nanoTime	()J
    //   27: lstore 5
    //   29: aload 9
    //   31: astore 10
    //   33: lload 5
    //   35: lstore 7
    //   37: aload_3
    //   38: monitorexit
    //   39: aload 9
    //   41: ifnull +39 -> 80
    //   44: aload 9
    //   46: astore_3
    //   47: lload 5
    //   49: lstore 7
    //   51: aload_0
    //   52: aload_1
    //   53: iload_2
    //   54: aload 9
    //   56: iconst_1
    //   57: invokevirtual 33	nm$c:a	(Ljava/lang/Object;ILjava/lang/Object;Z)Ljava/lang/Object;
    //   60: ifnull +20 -> 80
    //   63: aload 9
    //   65: astore_3
    //   66: lload 5
    //   68: lstore 7
    //   70: aload_0
    //   71: aload_1
    //   72: aload 9
    //   74: getstatic 39	com/google/common/collect/MapMaker$d:b	Lcom/google/common/collect/MapMaker$d;
    //   77: invokevirtual 42	nm$c:a	(Ljava/lang/Object;Ljava/lang/Object;Lcom/google/common/collect/MapMaker$d;)V
    //   80: lload 5
    //   82: lconst_0
    //   83: lcmp
    //   84: ifne +7 -> 91
    //   87: invokestatic 25	java/lang/System:nanoTime	()J
    //   90: pop2
    //   91: aload 9
    //   93: ifnonnull +12 -> 105
    //   96: aload_0
    //   97: aload_1
    //   98: iload_2
    //   99: aload 4
    //   101: invokevirtual 45	nm$c:a	(Ljava/lang/Object;ILpc$w;)Z
    //   104: pop
    //   105: aload 9
    //   107: areturn
    //   108: astore 11
    //   110: lconst_0
    //   111: lstore 5
    //   113: aload 10
    //   115: astore 9
    //   117: aload 9
    //   119: astore 10
    //   121: lload 5
    //   123: lstore 7
    //   125: aload_3
    //   126: monitorexit
    //   127: aload 9
    //   129: astore_3
    //   130: lload 5
    //   132: lstore 7
    //   134: aload 11
    //   136: athrow
    //   137: astore 10
    //   139: aload_3
    //   140: astore 9
    //   142: aload 10
    //   144: astore_3
    //   145: lload 7
    //   147: lconst_0
    //   148: lcmp
    //   149: ifne +7 -> 156
    //   152: invokestatic 25	java/lang/System:nanoTime	()J
    //   155: pop2
    //   156: aload 9
    //   158: ifnonnull +12 -> 170
    //   161: aload_0
    //   162: aload_1
    //   163: iload_2
    //   164: aload 4
    //   166: invokevirtual 45	nm$c:a	(Ljava/lang/Object;ILpc$w;)Z
    //   169: pop
    //   170: aload_3
    //   171: athrow
    //   172: astore_3
    //   173: lconst_0
    //   174: lstore 7
    //   176: goto -31 -> 145
    //   179: astore 11
    //   181: aload 10
    //   183: astore 9
    //   185: lload 7
    //   187: lstore 5
    //   189: goto -72 -> 117
    // Local variable table:
    //   start	length	slot	name	signature
    //   0	192	0	this	c
    //   0	192	1	paramK	K
    //   0	192	2	paramInt	int
    //   0	192	3	paraml	pc.l<K, V>
    //   0	192	4	parame	nm.e<K, V>
    //   27	161	5	l1	long
    //   35	151	7	l2	long
    //   1	183	9	localObject1	Object
    //   4	116	10	localObject2	Object
    //   137	45	10	localObject3	Object
    //   108	27	11	localObject4	Object
    //   179	1	11	localObject5	Object
    // Exception table:
    //   from	to	target	type
    //   12	20	108	finally
    //   24	29	108	finally
    //   51	63	137	finally
    //   70	80	137	finally
    //   134	137	137	finally
    //   10	12	172	finally
    //   37	39	179	finally
    //   125	127	179	finally
  }
  
  final V a(K paramK, int paramInt, Function<? super K, ? extends V> paramFunction)
    throws ExecutionException
  {
    for (;;)
    {
      Object localObject3;
      Object localObject4;
      try
      {
        localObject2 = a(paramK, paramInt);
        if (localObject2 != null)
        {
          localObject1 = c((pc.l)localObject2);
          if (localObject1 != null)
          {
            a((pc.l)localObject2);
            return (V)localObject1;
          }
        }
        if (localObject2 != null)
        {
          localObject1 = localObject2;
          if (((pc.l)localObject2).a().b()) {
            break label427;
          }
        }
        lock();
        try
        {
          b();
          i = this.b;
          AtomicReferenceArray localAtomicReferenceArray = this.e;
          int j = paramInt & localAtomicReferenceArray.length() - 1;
          localObject2 = (pc.l)localAtomicReferenceArray.get(j);
          localObject1 = localObject2;
          if (localObject1 == null) {
            break label489;
          }
          localObject3 = ((pc.l)localObject1).d();
          if ((((pc.l)localObject1).c() != paramInt) || (localObject3 == null) || (!this.a.g.equivalent(paramK, localObject3))) {
            break label399;
          }
          if (((pc.l)localObject1).a().b())
          {
            i = 0;
            if (i == 0) {
              break label483;
            }
            localObject3 = new nm.e(paramFunction);
            if (localObject1 != null) {
              break label411;
            }
            localObject1 = a(paramK, paramInt, (pc.l)localObject2);
            ((pc.l)localObject1).a((pc.w)localObject3);
            localAtomicReferenceArray.set(j, localObject1);
            localObject2 = localObject3;
            unlock();
            c();
            if (i == 0) {
              break label427;
            }
            paramK = a(paramK, paramInt, (pc.l)localObject1, (nm.e)localObject2);
            return paramK;
          }
          localObject4 = ((pc.l)localObject1).a().get();
          if (localObject4 == null)
          {
            a(localObject3, localObject4, MapMaker.d.c);
            this.k.remove(localObject1);
            this.l.remove(localObject1);
            this.b = (i - 1);
            i = 1;
            continue;
          }
          if ((this.a.b()) && (this.a.a((pc.l)localObject1)))
          {
            a(localObject3, localObject4, MapMaker.d.d);
            continue;
            paramK = finally;
          }
        }
        finally
        {
          unlock();
        }
        b((pc.l)localObject1);
      }
      finally
      {
        a();
      }
      unlock();
      c();
      a();
      return (V)localObject4;
      label399:
      Object localObject1 = ((pc.l)localObject1).b();
      continue;
      label411:
      ((pc.l)localObject1).a((pc.w)localObject3);
      Object localObject2 = localObject3;
      continue;
      label427:
      if (!Thread.holdsLock(localObject1)) {}
      for (boolean bool = true;; bool = false)
      {
        Preconditions.checkState(bool, "Recursive computation");
        localObject2 = ((pc.l)localObject1).a().c();
        if (localObject2 == null) {
          break;
        }
        a((pc.l)localObject1);
        a();
        return (V)localObject2;
      }
      label483:
      localObject2 = null;
      continue;
      label489:
      int i = 1;
    }
  }
}


/* Location:              /home/merong/decompile/hackery-dex2jar.jar!/nm$c.class
 * Java compiler version: 6 (50.0)
 * JD-Core Version:       0.7.1
 */