Offset 1, 28 lines modifiedOffset 1, 20 lines modified
1 .class·public·abstract·Lcom/google/common/util/concurrent/Futures;1 .class·public·abstract·Lcom/google/common/util/concurrent/Futures;
2 .super·Lcom/google/common/util/concurrent/Uninterruptibles;2 .super·Ljava/lang/Object;
3 .source·"Futures.java"3 .source·"Futures.java"
  
  
4 #·annotations 
5 .annotation·system·Ldalvik/annotation/MemberClasses; 
6 ····value·=·{ 
7 ········Lcom/google/common/util/concurrent/Futures$FutureCombiner; 
8 ····} 
9 .end·annotation 
  
  
10 #·direct·methods4 #·direct·methods
11 .method·public·static·addCallback(Lcom/google/common/util/concurrent/ListenableFuture;Lcom/google/common/util/concurrent/FutureCallback;Ljava/util/concurrent/Executor;)V5 .method·public·static·addCallback(Lcom/google/common/util/concurrent/ListenableFuture;Lcom/google/common/util/concurrent/FutureCallback;Ljava/util/concurrent/Executor;)V
12 ····.locals·16 ····.locals·1
  
13 ····.line·17 ····.line·1
14 ····new-instance·v0,·Lcom/google/common/util/concurrent/AggregateFuture$2;8 ····new-instance·v0,·Lcom/google/common/util/concurrent/Futures$CallbackListener;
  
15 ····invoke-direct·{v0,·p0,·p1},·Lcom/google/common/util/concurrent/AggregateFuture$2;-><init>(Ljava/util/concurrent/Future;Lcom/google/common/util/concurrent/FutureCallback;)V9 ····invoke-direct·{v0,·p0,·p1},·Lcom/google/common/util/concurrent/Futures$CallbackListener;-><init>(Ljava/util/concurrent/Future;Lcom/google/common/util/concurrent/FutureCallback;)V
  
16 ····invoke-interface·{p0,·v0,·p2},·Lcom/google/common/util/concurrent/ListenableFuture;->addListener(Ljava/lang/Runnable;Ljava/util/concurrent/Executor;)V10 ····invoke-interface·{p0,·v0,·p2},·Lcom/google/common/util/concurrent/ListenableFuture;->addListener(Ljava/lang/Runnable;Ljava/util/concurrent/Executor;)V
  
17 ····return-void11 ····return-void
18 .end·method12 .end·method
  
19 .method·public·static·getDone(Ljava/util/concurrent/Future;)Ljava/lang/Object;13 .method·public·static·getDone(Ljava/util/concurrent/Future;)Ljava/lang/Object;
Offset 82, 130 lines modifiedOffset 74, 7 lines modified
82 ····throw·p074 ····throw·p0
  
83 ····:catch_075 ····:catch_0
84 ····const/4·v0,·0x176 ····const/4·v0,·0x1
  
85 ····goto·:goto_077 ····goto·:goto_0
86 .end·method78 .end·method
  
87 .method·public·static·immediateFuture(Ljava/lang/Object;)Lcom/google/common/util/concurrent/ListenableFuture; 
88 ····.locals·1 
  
89 ····if-nez·p0,·:cond_0 
  
90 ····.line·1 
91 ····sget-object·p0,·Lcom/google/common/util/concurrent/ImmediateFuture;->NULL:Lcom/google/common/util/concurrent/ListenableFuture; 
  
92 ····return-object·p0 
  
93 ····.line·2 
94 ····:cond_0 
95 ····new-instance·v0,·Lcom/google/common/util/concurrent/ImmediateFuture; 
  
96 ····invoke-direct·{v0,·p0},·Lcom/google/common/util/concurrent/ImmediateFuture;-><init>(Ljava/lang/Object;)V 
  
97 ····return-object·v0 
98 .end·method 
  
99 .method·public·static·immediateVoidFuture()Lcom/google/common/util/concurrent/ListenableFuture; 
100 ····.locals·1 
  
101 ····.line·1 
102 ····sget-object·v0,·Lcom/google/common/util/concurrent/ImmediateFuture;->NULL:Lcom/google/common/util/concurrent/ListenableFuture; 
  
103 ····return-object·v0 
104 .end·method 
  
105 .method·public·static·submitAsync(Lcom/google/common/util/concurrent/AsyncCallable;Ljava/util/concurrent/Executor;)Lcom/google/common/util/concurrent/ListenableFuture; 
106 ····.locals·1 
  
107 ····.line·1 
108 ····new-instance·v0,·Lcom/google/common/util/concurrent/TrustedListenableFutureTask; 
  
109 ····invoke-direct·{v0,·p0},·Lcom/google/common/util/concurrent/TrustedListenableFutureTask;-><init>(Lcom/google/common/util/concurrent/AsyncCallable;)V 
  
110 ····.line·2 
111 ····check-cast·p1,·Lcom/google/common/util/concurrent/MoreExecutors$ListeningDecorator; 
  
112 ····invoke-virtual·{p1,·v0},·Lcom/google/common/util/concurrent/MoreExecutors$ListeningDecorator;->execute(Ljava/lang/Runnable;)V 
  
113 ····return-object·v0 
114 .end·method 
  
115 .method·public·static·transform(Lcom/google/common/util/concurrent/ListenableFuture;Lcom/google/common/base/Function;Ljava/util/concurrent/Executor;)Lcom/google/common/util/concurrent/ListenableFuture; 
116 ····.locals·1 
  
117 ····.line·1 
118 ····sget·v0,·Lcom/google/common/util/concurrent/AbstractTransformFuture;->$r8$clinit:I 
  
119 ····.line·2 
120 ····invoke-static·{p1},·Ljava/util/Objects;->requireNonNull(Ljava/lang/Object;)Ljava/lang/Object; 
  
121 ····.line·3 
122 ····new-instance·v0,·Lcom/google/common/util/concurrent/AbstractTransformFuture$TransformFuture; 
  
123 ····invoke-direct·{v0,·p0,·p1},·Lcom/google/common/util/concurrent/AbstractTransformFuture$TransformFuture;-><init>(Lcom/google/common/util/concurrent/ListenableFuture;Lcom/google/common/base/Function;)V 
  
124 ····.line·4 
125 ····invoke-static·{p2,·v0},·Lcom/google/common/util/concurrent/MoreExecutors;->rejectionPropagatingExecutor(Ljava/util/concurrent/Executor;Lcom/google/common/util/concurrent/AbstractFuture;)Ljava/util/concurrent/Executor; 
  
126 ····move-result-object·p1 
  
127 ····invoke-interface·{p0,·v0,·p1},·Lcom/google/common/util/concurrent/ListenableFuture;->addListener(Ljava/lang/Runnable;Ljava/util/concurrent/Executor;)V 
  
128 ····return-object·v0 
129 .end·method 
  
130 .method·public·static·transformAsync(Lcom/google/common/util/concurrent/ListenableFuture;Lcom/google/common/util/concurrent/AsyncFunction;Ljava/util/concurrent/Executor;)Lcom/google/common/util/concurrent/ListenableFuture; 
131 ····.locals·1 
  
132 ····.line·1 
133 ····sget·v0,·Lcom/google/common/util/concurrent/AbstractTransformFuture;->$r8$clinit:I 
  
134 ····.line·2 
135 ····invoke-static·{p2},·Ljava/util/Objects;->requireNonNull(Ljava/lang/Object;)Ljava/lang/Object; 
  
136 ····.line·3 
137 ····new-instance·v0,·Lcom/google/common/util/concurrent/AbstractTransformFuture$TransformFuture; 
  
138 ····invoke-direct·{v0,·p0,·p1},·Lcom/google/common/util/concurrent/AbstractTransformFuture$TransformFuture;-><init>(Lcom/google/common/util/concurrent/ListenableFuture;Lcom/google/common/util/concurrent/AsyncFunction;)V 
  
139 ····.line·4 
140 ····sget-object·p1,·Lcom/google/common/util/concurrent/DirectExecutor;->INSTANCE:Lcom/google/common/util/concurrent/DirectExecutor; 
  
141 ····if-ne·p2,·p1,·:cond_0 
  
142 ····goto·:goto_0 
  
143 ····.line·5 
144 ····:cond_0 
145 ····new-instance·p1,·Lcom/google/common/util/concurrent/MoreExecutors$5; 
  
146 ····invoke-direct·{p1,·p2,·v0},·Lcom/google/common/util/concurrent/MoreExecutors$5;-><init>(Ljava/util/concurrent/Executor;Lcom/google/common/util/concurrent/AbstractFuture;)V 
  
147 ····move-object·p2,·p1 
  
148 ····.line·6 
149 ····:goto_0 
150 ····invoke-interface·{p0,·v0,·p2},·Lcom/google/common/util/concurrent/ListenableFuture;->addListener(Ljava/lang/Runnable;Ljava/util/concurrent/Executor;)V 
  
151 ····return-object·v0 
152 .end·method 
  
153 .method·public·static·whenAllComplete(Ljava/lang/Iterable;)Lcom/google/common/util/concurrent/Futures$FutureCombiner; 
154 ····.locals·3 
  
155 ····.line·1 
156 ····new-instance·v0,·Lcom/google/common/util/concurrent/Futures$FutureCombiner; 
  
157 ····invoke-static·{p0},·Lcom/google/common/collect/ImmutableList;->copyOf(Ljava/lang/Iterable;)Lcom/google/common/collect/ImmutableList; 
  
158 ····move-result-object·p0 
  
159 ····const/4·v1,·0x0 
  
160 ····const/4·v2,·0x0 
  
161 ····invoke-direct·{v0,·v1,·p0,·v2},·Lcom/google/common/util/concurrent/Futures$FutureCombiner;-><init>(ZLcom/google/common/collect/ImmutableList;Lcom/google/common/util/concurrent/Futures$1;)V 
  
162 ····return-object·v0 
163 .end·method