Offset 13, 29 lines modifiedOffset 13, 29 lines modified
13 .field·private·length:I13 .field·private·length:I
  
14 .field·private·shift:I14 .field·private·shift:I
  
  
15 #·direct·methods15 #·direct·methods
16 .method·constructor·<init>(I)V16 .method·constructor·<init>(I)V
17 ····.locals·017 ····.locals·1
  
 18 ····const/4·v0,·0x0
  
18 ····.line·119 ····.line·1
19 ····invoke-direct·{p0},·Lcom/google/common/hash/AbstractHasher;-><init>()V20 ····invoke-direct·{p0,·v0},·Lcom/google/common/hash/AbstractHasher;-><init>(I)V
  
20 ····.line·221 ····.line·2
21 ····iput·p1,·p0,·Lcom/google/common/hash/Murmur3_32HashFunction$Murmur3_32Hasher;->h1:I22 ····iput·p1,·p0,·Lcom/google/common/hash/Murmur3_32HashFunction$Murmur3_32Hasher;->h1:I
  
22 ····const/4·p1,·0x0 
  
23 ····.line·323 ····.line·3
24 ····iput·p1,·p0,·Lcom/google/common/hash/Murmur3_32HashFunction$Murmur3_32Hasher;->length:I24 ····iput·v0,·p0,·Lcom/google/common/hash/Murmur3_32HashFunction$Murmur3_32Hasher;->length:I
  
25 ····.line·425 ····.line·4
26 ····iput-boolean·p1,·p0,·Lcom/google/common/hash/Murmur3_32HashFunction$Murmur3_32Hasher;->isDone:Z26 ····iput-boolean·v0,·p0,·Lcom/google/common/hash/Murmur3_32HashFunction$Murmur3_32Hasher;->isDone:Z
  
27 ····return-void27 ····return-void
28 .end·method28 .end·method
  
29 .method·private·update(IJ)V29 .method·private·update(IJ)V
30 ····.locals·430 ····.locals·4
  
Offset 143, 64 lines modifiedOffset 143, 34 lines modified
143 ····invoke-static·{v0,·p0},·Lcom/google/common/hash/Murmur3_32HashFunction;->access$600(II)Lcom/google/common/hash/HashCode;143 ····invoke-static·{v0,·p0},·Lcom/google/common/hash/Murmur3_32HashFunction;->access$600(II)Lcom/google/common/hash/HashCode;
  
144 ····move-result-object·p0144 ····move-result-object·p0
  
145 ····return-object·p0145 ····return-object·p0
146 .end·method146 .end·method
  
147 .method·public·putByte(B)Lcom/google/common/hash/Hasher; 
148 ····.locals·2 
  
149 ····and-int/lit16·p1,·p1,·0xff 
  
150 ····int-to-long·v0,·p1 
  
151 ····const/4·p1,·0x1 
  
152 ····.line·1 
153 ····invoke-direct·{p0,·p1,·v0,·v1},·Lcom/google/common/hash/Murmur3_32HashFunction$Murmur3_32Hasher;->update(IJ)V 
  
154 ····return-object·p0 
155 .end·method 
  
156 .method·public·putByte(B)Lcom/google/common/hash/PrimitiveSink; 
157 ····.locals·2 
  
158 ····and-int/lit16·p1,·p1,·0xff 
  
159 ····int-to-long·v0,·p1 
  
160 ····const/4·p1,·0x1 
  
161 ····.line·2 
162 ····invoke-direct·{p0,·p1,·v0,·v1},·Lcom/google/common/hash/Murmur3_32HashFunction$Murmur3_32Hasher;->update(IJ)V 
  
163 ····return-object·p0 
164 .end·method 
  
165 .method·public·putBytes([BII)Lcom/google/common/hash/Hasher;147 .method·public·putBytes([BII)Lcom/google/common/hash/Hasher;
166 ····.locals·4148 ····.locals·4
  
167 ····add-int·v0,·p2,·p3149 ····add-int·v0,·p2,·p3
  
168 ····.line·2150 ····.line·1
169 ····array-length·v1,·p1151 ····array-length·v1,·p1
  
170 ····invoke-static·{p2,·v0,·v1},·Lcom/google/common/base/Ascii;->checkPositionIndexes(III)V152 ····invoke-static·{p2,·v0,·v1},·Lcom/google/common/base/Ascii;->checkPositionIndexes(III)V
  
171 ····const/4·v0,·0x0153 ····const/4·v0,·0x0
  
172 ····:goto_0154 ····:goto_0
173 ····add-int/lit8·v1,·v0,·0x4155 ····add-int/lit8·v1,·v0,·0x4
  
174 ····if-gt·v1,·p3,·:cond_0156 ····if-gt·v1,·p3,·:cond_0
  
175 ····add-int/2addr·v0,·p2157 ····add-int/2addr·v0,·p2
  
176 ····.line·3158 ····.line·2
177 ····invoke-static·{p1,·v0},·Lcom/google/common/hash/Murmur3_32HashFunction;->access$200([BI)I159 ····invoke-static·{p1,·v0},·Lcom/google/common/hash/Murmur3_32HashFunction;->access$200([BI)I
  
178 ····move-result·v0160 ····move-result·v0
  
179 ····int-to-long·v2,·v0161 ····int-to-long·v2,·v0
  
180 ····const/4·v0,·0x4162 ····const/4·v0,·0x4
Offset 213, 38 lines modifiedOffset 183, 36 lines modified
  
213 ····:cond_0183 ····:cond_0
214 ····:goto_1184 ····:goto_1
215 ····if-ge·v0,·p3,·:cond_1185 ····if-ge·v0,·p3,·:cond_1
  
216 ····add-int·v1,·p2,·v0186 ····add-int·v1,·p2,·v0
  
217 ····.line·4187 ····.line·3
218 ····aget-byte·v1,·p1,·v1188 ····aget-byte·v1,·p1,·v1
  
219 ····invoke-virtual·{p0,·v1},·Lcom/google/common/hash/Murmur3_32HashFunction$Murmur3_32Hasher;->putByte(B)Lcom/google/common/hash/Hasher;189 ····and-int/lit16·v1,·v1,·0xff
  
220 ····add-int/lit8·v0,·v0,·0x1190 ····int-to-long·v1,·v1
  
221 ····goto·:goto_1191 ····const/4·v3,·0x1
  
 192 ····.line·4
 193 ····invoke-direct·{p0,·v3,·v1,·v2},·Lcom/google/common/hash/Murmur3_32HashFunction$Murmur3_32Hasher;->update(IJ)V
222 ····:cond_1 
223 ····return-object·p0 
224 .end·method 
  
 194 ····add-int/lit8·v0,·v0,·0x1
225 .method·public·bridge·synthetic·putBytes([BII)Lcom/google/common/hash/PrimitiveSink; 
226 ····.locals·0 
  
 195 ····goto·:goto_1
227 ····.line·1 
228 ····invoke-virtual·{p0,·p1,·p2,·p3},·Lcom/google/common/hash/Murmur3_32HashFunction$Murmur3_32Hasher;->putBytes([BII)Lcom/google/common/hash/Hasher; 
  
 196 ····:cond_1
229 ····return-object·p0197 ····return-object·p0
230 .end·method198 .end·method
  
231 .method·public·putString(Ljava/lang/CharSequence;Ljava/nio/charset/Charset;)Lcom/google/common/hash/Hasher;199 .method·public·putString(Ljava/lang/CharSequence;Ljava/nio/charset/Charset;)Lcom/google/common/hash/Hasher;
232 ····.locals·9200 ····.locals·10
  
233 ····.line·1201 ····.line·1
234 ····sget-object·v0,·Lcom/google/common/base/Charsets;->UTF_8:Ljava/nio/charset/Charset;202 ····sget-object·v0,·Lcom/google/common/base/Charsets;->UTF_8:Ljava/nio/charset/Charset;
  
235 ····invoke-virtual·{v0,·p2},·Ljava/nio/charset/Charset;->equals(Ljava/lang/Object;)Z203 ····invoke-virtual·{v0,·p2},·Ljava/nio/charset/Charset;->equals(Ljava/lang/Object;)Z
  
236 ····move-result·v0204 ····move-result·v0
Offset 254, 202 lines modifiedOffset 222, 199 lines modified
254 ····.line·2222 ····.line·2
255 ····invoke-interface·{p1},·Ljava/lang/CharSequence;->length()I223 ····invoke-interface·{p1},·Ljava/lang/CharSequence;->length()I
  
256 ····move-result·v0224 ····move-result·v0
  
257 ····const/4·v1,·0x0225 ····const/4·v1,·0x0
  
 226 ····move·v2,·v1
258 ····:goto_0 
259 ····add-int/lit8·v2,·v1,·0x4 
  
260 ····const/4·v3,·0x4227 ····:goto_0
 228 ····add-int/lit8·v3,·v2,·0x4
  
261 ····const/16·v4,·0x80229 ····const/16·v4,·0x80
  
262 ····if-gt·v2,·v0,·:cond_0230 ····const/4·v5,·0x4
  
 231 ····if-gt·v3,·v0,·:cond_0
263 ····.line·3 
264 ····invoke-interface·{p1,·v1},·Ljava/lang/CharSequence;->charAt(I)C 
  
265 ····move-result·v5 
  
266 ····add-int/lit8·v6,·v1,·0x1 
  
267 ····.line·4232 ····.line·3
268 ····invoke-interface·{p1,·v6},·Ljava/lang/CharSequence;->charAt(I)C233 ····invoke-interface·{p1,·v2},·Ljava/lang/CharSequence;->charAt(I)C
  
269 ····move-result·v6234 ····move-result·v6
  
270 ····add-int/lit8·v7,·v1,·0x2235 ····add-int/lit8·v7,·v2,·0x1
  
271 ····.line·5236 ····.line·4
272 ····invoke-interface·{p1,·v7},·Ljava/lang/CharSequence;->charAt(I)C237 ····invoke-interface·{p1,·v7},·Ljava/lang/CharSequence;->charAt(I)C
  
273 ····move-result·v7238 ····move-result·v7
  
274 ····add-int/lit8·v8,·v1,·0x3239 ····add-int/lit8·v8,·v2,·0x2
  
275 ····.line·6240 ····.line·5
276 ····invoke-interface·{p1,·v8},·Ljava/lang/CharSequence;->charAt(I)C241 ····invoke-interface·{p1,·v8},·Ljava/lang/CharSequence;->charAt(I)C
  
277 ····move-result·v8242 ····move-result·v8
  
278 ····if-ge·v5,·v4,·:cond_0243 ····add-int/lit8·v9,·v2,·0x3
  
 244 ····.line·6
 245 ····invoke-interface·{p1,·v9},·Ljava/lang/CharSequence;->charAt(I)C
  
 246 ····move-result·v9
  
279 ····if-ge·v6,·v4,·:cond_0247 ····if-ge·v6,·v4,·:cond_0
  
280 ····if-ge·v7,·v4,·:cond_0248 ····if-ge·v7,·v4,·:cond_0
  
281 ····if-ge·v8,·v4,·:cond_0249 ····if-ge·v8,·v4,·:cond_0
  
282 ····shl-int/lit8·v1,·v6,·0x8250 ····if-ge·v9,·v4,·:cond_0
  
283 ····or-int/2addr·v1,·v5251 ····shl-int/lit8·v2,·v7,·0x8
  
284 ····shl-int/lit8·v4,·v7,·0x10252 ····or-int/2addr·v2,·v6
  
285 ····or-int/2addr·v1,·v4253 ····shl-int/lit8·v4,·v8,·0x10
  
286 ····shl-int/lit8·v4,·v8,·0x18254 ····or-int/2addr·v2,·v4
  
 255 ····shl-int/lit8·v4,·v9,·0x18
  
287 ····or-int/2addr·v1,·v4256 ····or-int/2addr·v2,·v4
  
288 ····int-to-long·v4,·v1257 ····int-to-long·v6,·v2
  
289 ····.line·7258 ····.line·7
290 ····invoke-direct·{p0,·v3,·v4,·v5},·Lcom/google/common/hash/Murmur3_32HashFunction$Murmur3_32Hasher;->update(IJ)V259 ····invoke-direct·{p0,·v5,·v6,·v7},·Lcom/google/common/hash/Murmur3_32HashFunction$Murmur3_32Hasher;->update(IJ)V
  
291 ····move·v1,·v2260 ····move·v2,·v3
  
292 ····goto·:goto_0261 ····goto·:goto_0
  
293 ····:cond_0262 ····:cond_0
294 ····:goto_1263 ····:goto_1
295 ····if-ge·v1,·v0,·:cond_6264 ····if-ge·v2,·v0,·:cond_6
  
296 ····.line·8265 ····.line·8
297 ····invoke-interface·{p1,·v1},·Ljava/lang/CharSequence;->charAt(I)C266 ····invoke-interface·{p1,·v2},·Ljava/lang/CharSequence;->charAt(I)C
  
298 ····move-result·v2267 ····move-result·v3
  
299 ····const/4·v5,·0x1268 ····const/4·v6,·0x1
  
300 ····if-ge·v2,·v4,·:cond_1269 ····if-ge·v3,·v4,·:cond_1
  
301 ····int-to-long·v6,·v2270 ····int-to-long·v7,·v3
  
302 ····.line·9271 ····.line·9
303 ····invoke-direct·{p0,·v5,·v6,·v7},·Lcom/google/common/hash/Murmur3_32HashFunction$Murmur3_32Hasher;->update(IJ)V272 ····invoke-direct·{p0,·v6,·v7,·v8},·Lcom/google/common/hash/Murmur3_32HashFunction$Murmur3_32Hasher;->update(IJ)V
  
304 ····goto·:goto_3273 ····goto·:goto_3
  
305 ····:cond_1274 ····:cond_1
306 ····const/16·v6,·0x800275 ····const/16·v7,·0x800
  
307 ····if-ge·v2,·v6,·:cond_2276 ····if-ge·v3,·v7,·:cond_2
  
308 ····ushr-int/lit8·v6,·v2,·0x6277 ····ushr-int/lit8·v7,·v3,·0x6
  
309 ····or-int/lit16·v6,·v6,·0x3c0278 ····or-int/lit16·v7,·v7,·0x3c0
  
310 ····and-int/lit16·v6,·v6,·0xff279 ····and-int/lit16·v7,·v7,·0xff
  
311 ····and-int/lit8·v2,·v2,·0x3f280 ····and-int/lit8·v3,·v3,·0x3f
  
312 ····or-int/2addr·v2,·v4281 ····or-int/2addr·v3,·v4
  
313 ····shl-int/lit8·v2,·v2,·0x8282 ····shl-int/lit8·v3,·v3,·0x8
  
314 ····or-int/2addr·v2,·v6283 ····or-int/2addr·v3,·v7
  
315 ····int-to-long·v6,·v2284 ····int-to-long·v7,·v3
  
316 ····const/4·v2,·0x2285 ····const/4·v3,·0x2
  
317 ····.line·10286 ····.line·10
318 ····invoke-direct·{p0,·v2,·v6,·v7},·Lcom/google/common/hash/Murmur3_32HashFunction$Murmur3_32Hasher;->update(IJ)V287 ····invoke-direct·{p0,·v3,·v7,·v8},·Lcom/google/common/hash/Murmur3_32HashFunction$Murmur3_32Hasher;->update(IJ)V
  
319 ····goto·:goto_3288 ····goto·:goto_3
  
320 ····:cond_2289 ····:cond_2
321 ····const·v6,·0xd800290 ····const·v7,·0xd800
  
322 ····if-lt·v2,·v6,·:cond_5291 ····if-lt·v3,·v7,·:cond_5
  
323 ····const·v6,·0xdfff292 ····const·v7,·0xdfff
  
324 ····if-le·v2,·v6,·:cond_3293 ····if-le·v3,·v7,·:cond_3
  
325 ····goto·:goto_2294 ····goto·:goto_2
  
326 ····.line·11295 ····.line·11
327 ····:cond_3296 ····:cond_3
328 ····invoke-static·{p1,·v1},·Ljava/lang/Character;->codePointAt(Ljava/lang/CharSequence;I)I297 ····invoke-static·{p1,·v2},·Ljava/lang/Character;->codePointAt(Ljava/lang/CharSequence;I)I
  
329 ····move-result·v6298 ····move-result·v7
  
330 ····if-ne·v6,·v2,·:cond_4299 ····if-ne·v7,·v3,·:cond_4
  
331 ····.line·12300 ····.line·12
332 ····invoke-interface·{p1,·v1,·v0},·Ljava/lang/CharSequence;->subSequence(II)Ljava/lang/CharSequence;301 ····invoke-interface·{p1,·v2,·v0},·Ljava/lang/CharSequence;->subSequence(II)Ljava/lang/CharSequence;
  
333 ····move-result-object·p1302 ····move-result-object·p1
  
334 ····invoke-interface·{p1},·Ljava/lang/CharSequence;->toString()Ljava/lang/String;303 ····invoke-interface·{p1},·Ljava/lang/CharSequence;->toString()Ljava/lang/String;
  
335 ····move-result-object·p1304 ····move-result-object·p1
  
336 ····invoke-virtual·{p1,·p2},·Ljava/lang/String;->getBytes(Ljava/nio/charset/Charset;)[B305 ····invoke-virtual·{p1,·p2},·Ljava/lang/String;->getBytes(Ljava/nio/charset/Charset;)[B
  
337 ····move-result-object·p1306 ····move-result-object·p1
  
 307 ····.line·13
 308 ····array-length·p2,·p1
  
338 ····invoke-virtual·{p0,·p1},·Lcom/google/common/hash/AbstractHasher;->putBytes([B)Lcom/google/common/hash/Hasher;309 ····invoke-virtual·{p0,·p1,·v1,·p2},·Lcom/google/common/hash/Murmur3_32HashFunction$Murmur3_32Hasher;->putBytes([BII)Lcom/google/common/hash/Hasher;
  
339 ····return-object·p0310 ····return-object·p0
  
340 ····:cond_4311 ····:cond_4
341 ····add-int/lit8·v1,·v1,·0x1312 ····add-int/lit8·v2,·v2,·0x1
  
342 ····.line·13313 ····.line·14
343 ····invoke-static·{v6},·Lcom/google/common/hash/Murmur3_32HashFunction;->access$500(I)J314 ····invoke-static·{v7},·Lcom/google/common/hash/Murmur3_32HashFunction;->access$500(I)J
  
344 ····move-result-wide·v6315 ····move-result-wide·v7
  
345 ····invoke-direct·{p0,·v3,·v6,·v7},·Lcom/google/common/hash/Murmur3_32HashFunction$Murmur3_32Hasher;->update(IJ)V316 ····invoke-direct·{p0,·v5,·v7,·v8},·Lcom/google/common/hash/Murmur3_32HashFunction$Murmur3_32Hasher;->update(IJ)V
  
346 ····goto·:goto_3317 ····goto·:goto_3
  
347 ····.line·14318 ····.line·15
348 ····:cond_5319 ····:cond_5
349 ····:goto_2320 ····:goto_2
350 ····invoke-static·{v2},·Lcom/google/common/hash/Murmur3_32HashFunction;->access$400(C)J321 ····invoke-static·{v3},·Lcom/google/common/hash/Murmur3_32HashFunction;->access$400(C)J
  
351 ····move-result-wide·v6322 ····move-result-wide·v7
  
352 ····const/4·v2,·0x3323 ····const/4·v3,·0x3
  
353 ····invoke-direct·{p0,·v2,·v6,·v7},·Lcom/google/common/hash/Murmur3_32HashFunction$Murmur3_32Hasher;->update(IJ)V324 ····invoke-direct·{p0,·v3,·v7,·v8},·Lcom/google/common/hash/Murmur3_32HashFunction$Murmur3_32Hasher;->update(IJ)V
  
354 ····:goto_3325 ····:goto_3
355 ····add-int/2addr·v1,·v5326 ····add-int/2addr·v2,·v6
  
356 ····goto·:goto_1327 ····goto·:goto_1
  
357 ····:cond_6328 ····:cond_6
358 ····return-object·p0329 ····return-object·p0
  
359 ····.line·15330 ····.line·16
360 ····:cond_7331 ····:cond_7
 332 ····invoke-super·{p0,·p1,·p2},·Lcom/google/common/hash/AbstractHasher;->putString(Ljava/lang/CharSequence;Ljava/nio/charset/Charset;)Lcom/google/common/hash/Hasher;
361 ····invoke-interface·{p1},·Ljava/lang/CharSequence;->toString()Ljava/lang/String; 
  
362 ····move-result-object·p1 
  
363 ····invoke-virtual·{p1,·p2},·Ljava/lang/String;->getBytes(Ljava/nio/charset/Charset;)[B 
  
364 ····move-result-object·p1 
  
365 ····invoke-virtual·{p0,·p1},·Lcom/google/common/hash/AbstractHasher;->putBytes([B)Lcom/google/common/hash/Hasher; 
  
366 ····move-result-object·p0333 ····move-result-object·p0
  
367 ····return-object·p0334 ····return-object·p0
368 .end·method335 .end·method