· 8 years ago · Aug 16, 2018, 06:56 AM
1.class public final Landroid/database/sqlite/SQLiteConnection;
2.super Ljava/lang/Object;
3.source "SQLiteConnection.java"
4
5# interfaces
6.implements Landroid/os/CancellationSignal$OnCancelListener;
7
8
9# annotations
10.annotation system Ldalvik/annotation/MemberClasses;
11 value = {
12 Landroid/database/sqlite/SQLiteConnection$Operation;,
13 Landroid/database/sqlite/SQLiteConnection$OperationLog;,
14 Landroid/database/sqlite/SQLiteConnection$PreparedStatement;,
15 Landroid/database/sqlite/SQLiteConnection$PreparedStatementCache;,
16 Landroid/database/sqlite/SQLiteConnection$SQLiteExpertModule;
17 }
18.end annotation
19
20
21# static fields
22.field static final synthetic -assertionsDisabled:Z
23
24.field private static final DEBUG:Z = false
25
26.field private static final EMPTY_BYTE_ARRAY:[B
27
28.field private static final EMPTY_STRING_ARRAY:[Ljava/lang/String;
29
30.field private static final TAG:Ljava/lang/String; = "SQLiteConnection"
31
32
33# instance fields
34.field private mCancellationSignalAttachCount:I
35
36.field private final mCloseGuard:Ldalvik/system/CloseGuard;
37
38.field private final mConfiguration:Landroid/database/sqlite/SQLiteDatabaseConfiguration;
39
40.field private final mConnectionId:I
41
42.field private mConnectionPtr:J
43
44.field private mExpertPtr:J
45
46.field private mIsOpen:Z
47
48.field private final mIsPrimaryConnection:Z
49
50.field private final mIsReadOnlyConnection:Z
51
52.field private mOnlyAllowReadOnlyOperations:Z
53
54.field private final mPool:Landroid/database/sqlite/SQLiteConnectionPool;
55
56.field private final mPreparedStatementCache:Landroid/database/sqlite/SQLiteConnection$PreparedStatementCache;
57
58.field private mPreparedStatementPool:Landroid/database/sqlite/SQLiteConnection$PreparedStatement;
59
60.field private final mRecentOperations:Landroid/database/sqlite/SQLiteConnection$OperationLog;
61
62
63# direct methods
64.method static synthetic -get0()[B
65 .locals 1
66
67 sget-object v0, Landroid/database/sqlite/SQLiteConnection;->EMPTY_BYTE_ARRAY:[B
68
69 return-object v0
70.end method
71
72.method static synthetic -wrap0(Landroid/database/sqlite/SQLiteConnection;Ljava/lang/String;)Ljava/lang/String;
73 .locals 1
74
75 const-string v0, ""
76
77 return-object v0
78.end method
79
80.method static synthetic -wrap1(Ljava/lang/String;)Ljava/lang/String;
81 .locals 1
82
83 invoke-static {p0}, Landroid/database/sqlite/SQLiteConnection;->trimSqlForDisplay(Ljava/lang/String;)Ljava/lang/String;
84
85 move-result-object v0
86
87 return-object v0
88.end method
89
90.method static synthetic -wrap2(Landroid/database/sqlite/SQLiteConnection;Landroid/database/sqlite/SQLiteConnection$PreparedStatement;)V
91 .locals 0
92
93 invoke-direct {p0, p1}, Landroid/database/sqlite/SQLiteConnection;->finalizePreparedStatement(Landroid/database/sqlite/SQLiteConnection$PreparedStatement;)V
94
95 return-void
96.end method
97
98.method static synthetic -wrap3(Landroid/database/sqlite/SQLiteConnection;Ljava/lang/String;)V
99 .locals 0
100
101 return-void
102.end method
103
104.method static constructor <clinit>()V
105 .locals 2
106
107 const/4 v1, 0x0
108
109 const-class v0, Landroid/database/sqlite/SQLiteConnection;
110
111 invoke-virtual {v0}, Ljava/lang/Class;->desiredAssertionStatus()Z
112
113 move-result v0
114
115 xor-int/lit8 v0, v0, 0x1
116
117 sput-boolean v0, Landroid/database/sqlite/SQLiteConnection;->-assertionsDisabled:Z
118
119 new-array v0, v1, [Ljava/lang/String;
120
121 sput-object v0, Landroid/database/sqlite/SQLiteConnection;->EMPTY_STRING_ARRAY:[Ljava/lang/String;
122
123 new-array v0, v1, [B
124
125 sput-object v0, Landroid/database/sqlite/SQLiteConnection;->EMPTY_BYTE_ARRAY:[B
126
127 return-void
128.end method
129
130.method private constructor <init>(Landroid/database/sqlite/SQLiteConnectionPool;Landroid/database/sqlite/SQLiteDatabaseConfiguration;IZ)V
131 .locals 2
132
133 const/4 v0, 0x0
134
135 invoke-direct {p0}, Ljava/lang/Object;-><init>()V
136
137 invoke-static {}, Ldalvik/system/CloseGuard;->get()Ldalvik/system/CloseGuard;
138
139 move-result-object v1
140
141 iput-object v1, p0, Landroid/database/sqlite/SQLiteConnection;->mCloseGuard:Ldalvik/system/CloseGuard;
142
143 iput-object p1, p0, Landroid/database/sqlite/SQLiteConnection;->mPool:Landroid/database/sqlite/SQLiteConnectionPool;
144
145 new-instance v1, Landroid/database/sqlite/SQLiteDatabaseConfiguration;
146
147 invoke-direct {v1, p2}, Landroid/database/sqlite/SQLiteDatabaseConfiguration;-><init>(Landroid/database/sqlite/SQLiteDatabaseConfiguration;)V
148
149 iput-object v1, p0, Landroid/database/sqlite/SQLiteConnection;->mConfiguration:Landroid/database/sqlite/SQLiteDatabaseConfiguration;
150
151 iput p3, p0, Landroid/database/sqlite/SQLiteConnection;->mConnectionId:I
152
153 iput-boolean p4, p0, Landroid/database/sqlite/SQLiteConnection;->mIsPrimaryConnection:Z
154
155 iget v1, p2, Landroid/database/sqlite/SQLiteDatabaseConfiguration;->openFlags:I
156
157 and-int/lit8 v1, v1, 0x1
158
159 if-eqz v1, :cond_0
160
161 const/4 v0, 0x1
162
163 :cond_0
164 iput-boolean v0, p0, Landroid/database/sqlite/SQLiteConnection;->mIsReadOnlyConnection:Z
165
166 new-instance v0, Landroid/database/sqlite/SQLiteConnection$PreparedStatementCache;
167
168 iget-object v1, p0, Landroid/database/sqlite/SQLiteConnection;->mConfiguration:Landroid/database/sqlite/SQLiteDatabaseConfiguration;
169
170 iget v1, v1, Landroid/database/sqlite/SQLiteDatabaseConfiguration;->maxSqlCacheSize:I
171
172 invoke-direct {v0, p0, v1}, Landroid/database/sqlite/SQLiteConnection$PreparedStatementCache;-><init>(Landroid/database/sqlite/SQLiteConnection;I)V
173
174 iput-object v0, p0, Landroid/database/sqlite/SQLiteConnection;->mPreparedStatementCache:Landroid/database/sqlite/SQLiteConnection$PreparedStatementCache;
175
176 new-instance v0, Landroid/database/sqlite/SQLiteConnection$OperationLog;
177
178 iget-object v1, p0, Landroid/database/sqlite/SQLiteConnection;->mConfiguration:Landroid/database/sqlite/SQLiteDatabaseConfiguration;
179
180 invoke-direct {v0, p1, p0, v1}, Landroid/database/sqlite/SQLiteConnection$OperationLog;-><init>(Landroid/database/sqlite/SQLiteConnectionPool;Landroid/database/sqlite/SQLiteConnection;Landroid/database/sqlite/SQLiteDatabaseConfiguration;)V
181
182 iput-object v0, p0, Landroid/database/sqlite/SQLiteConnection;->mRecentOperations:Landroid/database/sqlite/SQLiteConnection$OperationLog;
183
184 iget-object v0, p0, Landroid/database/sqlite/SQLiteConnection;->mCloseGuard:Ldalvik/system/CloseGuard;
185
186 const-string/jumbo v1, "close"
187
188 invoke-virtual {v0, v1}, Ldalvik/system/CloseGuard;->open(Ljava/lang/String;)V
189
190 return-void
191.end method
192
193.method private acquirePreparedStatement(Ljava/lang/String;)Landroid/database/sqlite/SQLiteConnection$PreparedStatement;
194 .locals 11
195
196 const/4 v10, 0x1
197
198 iget-object v0, p0, Landroid/database/sqlite/SQLiteConnection;->mPreparedStatementCache:Landroid/database/sqlite/SQLiteConnection$PreparedStatementCache;
199
200 invoke-virtual {v0, p1}, Landroid/database/sqlite/SQLiteConnection$PreparedStatementCache;->get(Ljava/lang/Object;)Ljava/lang/Object;
201
202 move-result-object v9
203
204 check-cast v9, Landroid/database/sqlite/SQLiteConnection$PreparedStatement;
205
206 const/4 v8, 0x0
207
208 if-eqz v9, :cond_1
209
210 iget-boolean v0, v9, Landroid/database/sqlite/SQLiteConnection$PreparedStatement;->mInUse:Z
211
212 if-nez v0, :cond_0
213
214 return-object v9
215
216 :cond_0
217 const/4 v8, 0x1
218
219 :cond_1
220 iget-wide v0, p0, Landroid/database/sqlite/SQLiteConnection;->mConnectionPtr:J
221
222 invoke-static {v0, v1, p1}, Landroid/database/sqlite/SQLiteConnection;->nativePrepareStatement(JLjava/lang/String;)J
223
224 move-result-wide v2
225
226 :try_start_0
227 iget-wide v0, p0, Landroid/database/sqlite/SQLiteConnection;->mConnectionPtr:J
228
229 invoke-static {v0, v1, v2, v3}, Landroid/database/sqlite/SQLiteConnection;->nativeGetParameterCount(JJ)I
230
231 move-result v4
232
233 invoke-static {p1}, Landroid/database/DatabaseUtils;->getSqlStatementType(Ljava/lang/String;)I
234
235 move-result v5
236
237 iget-wide v0, p0, Landroid/database/sqlite/SQLiteConnection;->mConnectionPtr:J
238
239 invoke-static {v0, v1, v2, v3}, Landroid/database/sqlite/SQLiteConnection;->nativeIsReadOnly(JJ)Z
240
241 move-result v6
242
243 move-object v0, p0
244
245 move-object v1, p1
246
247 invoke-direct/range {v0 .. v6}, Landroid/database/sqlite/SQLiteConnection;->obtainPreparedStatement(Ljava/lang/String;JIIZ)Landroid/database/sqlite/SQLiteConnection$PreparedStatement;
248
249 move-result-object v9
250
251 if-nez v8, :cond_2
252
253 invoke-static {v5}, Landroid/database/sqlite/SQLiteConnection;->isCacheable(I)Z
254
255 move-result v0
256
257 if-eqz v0, :cond_2
258
259 iget-object v0, p0, Landroid/database/sqlite/SQLiteConnection;->mPreparedStatementCache:Landroid/database/sqlite/SQLiteConnection$PreparedStatementCache;
260
261 invoke-virtual {v0, p1, v9}, Landroid/database/sqlite/SQLiteConnection$PreparedStatementCache;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
262
263 const/4 v0, 0x1
264
265 iput-boolean v0, v9, Landroid/database/sqlite/SQLiteConnection$PreparedStatement;->mInCache:Z
266 :try_end_0
267 .catch Ljava/lang/RuntimeException; {:try_start_0 .. :try_end_0} :catch_0
268
269 :cond_2
270 iput-boolean v10, v9, Landroid/database/sqlite/SQLiteConnection$PreparedStatement;->mInUse:Z
271
272 return-object v9
273
274 :catch_0
275 move-exception v7
276
277 if-eqz v9, :cond_3
278
279 iget-boolean v0, v9, Landroid/database/sqlite/SQLiteConnection$PreparedStatement;->mInCache:Z
280
281 xor-int/lit8 v0, v0, 0x1
282
283 if-eqz v0, :cond_4
284
285 :cond_3
286 iget-wide v0, p0, Landroid/database/sqlite/SQLiteConnection;->mConnectionPtr:J
287
288 invoke-static {v0, v1, v2, v3}, Landroid/database/sqlite/SQLiteConnection;->nativeFinalizeStatement(JJ)V
289
290 :cond_4
291 throw v7
292.end method
293
294.method private analyzeSql(Ljava/lang/String;)Ljava/lang/String;
295 .locals 8
296
297 const-wide/16 v6, 0x0
298
299 const/4 v4, 0x0
300
301 monitor-enter p0
302
303 :try_start_0
304 iget-boolean v1, p0, Landroid/database/sqlite/SQLiteConnection;->mIsOpen:Z
305 :try_end_0
306 .catchall {:try_start_0 .. :try_end_0} :catchall_0
307
308 if-nez v1, :cond_0
309
310 monitor-exit p0
311
312 return-object v4
313
314 :cond_0
315 :try_start_1
316 iget-wide v2, p0, Landroid/database/sqlite/SQLiteConnection;->mExpertPtr:J
317
318 cmp-long v1, v2, v6
319
320 if-nez v1, :cond_2
321
322 iget-object v1, p0, Landroid/database/sqlite/SQLiteConnection;->mPool:Landroid/database/sqlite/SQLiteConnectionPool;
323
324 invoke-virtual {v1}, Landroid/database/sqlite/SQLiteConnectionPool;->getConnectionKey()[B
325
326 move-result-object v0
327
328 iget-object v1, p0, Landroid/database/sqlite/SQLiteConnection;->mConfiguration:Landroid/database/sqlite/SQLiteDatabaseConfiguration;
329
330 iget v1, v1, Landroid/database/sqlite/SQLiteDatabaseConfiguration;->openFlags:I
331
332 and-int/lit16 v1, v1, 0x200
333
334 if-eqz v1, :cond_1
335
336 if-nez v0, :cond_1
337
338 const-string/jumbo v1, "SQLiteConnection"
339
340 const-string/jumbo v2, "Could not use expert without the key."
341
342 invoke-static {v1, v2}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
343 :try_end_1
344 .catchall {:try_start_1 .. :try_end_1} :catchall_0
345
346 monitor-exit p0
347
348 return-object v4
349
350 :cond_1
351 :try_start_2
352 iget-object v1, p0, Landroid/database/sqlite/SQLiteConnection;->mConfiguration:Landroid/database/sqlite/SQLiteDatabaseConfiguration;
353
354 iget-object v1, v1, Landroid/database/sqlite/SQLiteDatabaseConfiguration;->path:Ljava/lang/String;
355
356 iget-object v2, p0, Landroid/database/sqlite/SQLiteConnection;->mConfiguration:Landroid/database/sqlite/SQLiteDatabaseConfiguration;
357
358 iget-object v2, v2, Landroid/database/sqlite/SQLiteDatabaseConfiguration;->locale:Ljava/util/Locale;
359
360 invoke-virtual {v2}, Ljava/util/Locale;->toString()Ljava/lang/String;
361
362 move-result-object v2
363
364 invoke-static {v1, v2, v0}, Landroid/database/sqlite/SQLiteConnection;->nativeCreateExpert(Ljava/lang/String;Ljava/lang/String;[B)J
365
366 move-result-wide v2
367
368 iput-wide v2, p0, Landroid/database/sqlite/SQLiteConnection;->mExpertPtr:J
369
370 :cond_2
371 iget-wide v2, p0, Landroid/database/sqlite/SQLiteConnection;->mExpertPtr:J
372
373 cmp-long v1, v2, v6
374
375 if-nez v1, :cond_3
376
377 const-string/jumbo v1, "SQLiteConnection"
378
379 const-string/jumbo v2, "Could not use expert to analyze. No pointer."
380
381 invoke-static {v1, v2}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
382 :try_end_2
383 .catchall {:try_start_2 .. :try_end_2} :catchall_0
384
385 monitor-exit p0
386
387 return-object v4
388
389 :cond_3
390 :try_start_3
391 iget-wide v2, p0, Landroid/database/sqlite/SQLiteConnection;->mExpertPtr:J
392
393 invoke-static {v2, v3, p1}, Landroid/database/sqlite/SQLiteConnection;->nativeExpertAnalyze(JLjava/lang/String;)Ljava/lang/String;
394 :try_end_3
395 .catchall {:try_start_3 .. :try_end_3} :catchall_0
396
397 move-result-object v1
398
399 monitor-exit p0
400
401 return-object v1
402
403 :catchall_0
404 move-exception v1
405
406 monitor-exit p0
407
408 throw v1
409.end method
410
411.method private applyBlockGuardPolicy(Landroid/database/sqlite/SQLiteConnection$PreparedStatement;)V
412 .locals 1
413
414 iget-object v0, p0, Landroid/database/sqlite/SQLiteConnection;->mConfiguration:Landroid/database/sqlite/SQLiteDatabaseConfiguration;
415
416 invoke-virtual {v0}, Landroid/database/sqlite/SQLiteDatabaseConfiguration;->isInMemoryDb()Z
417
418 move-result v0
419
420 if-nez v0, :cond_0
421
422 iget-boolean v0, p1, Landroid/database/sqlite/SQLiteConnection$PreparedStatement;->mReadOnly:Z
423
424 if-eqz v0, :cond_1
425
426 invoke-static {}, Ldalvik/system/BlockGuard;->getThreadPolicy()Ldalvik/system/BlockGuard$Policy;
427
428 move-result-object v0
429
430 invoke-interface {v0}, Ldalvik/system/BlockGuard$Policy;->onReadFromDisk()V
431
432 :cond_0
433 :goto_0
434 return-void
435
436 :cond_1
437 invoke-static {}, Ldalvik/system/BlockGuard;->getThreadPolicy()Ldalvik/system/BlockGuard$Policy;
438
439 move-result-object v0
440
441 invoke-interface {v0}, Ldalvik/system/BlockGuard$Policy;->onWriteToDisk()V
442
443 goto :goto_0
444.end method
445
446.method private attachCancellationSignal(Landroid/os/CancellationSignal;)V
447 .locals 3
448
449 const/4 v2, 0x1
450
451 if-eqz p1, :cond_0
452
453 invoke-virtual {p1}, Landroid/os/CancellationSignal;->throwIfCanceled()V
454
455 iget v0, p0, Landroid/database/sqlite/SQLiteConnection;->mCancellationSignalAttachCount:I
456
457 add-int/lit8 v0, v0, 0x1
458
459 iput v0, p0, Landroid/database/sqlite/SQLiteConnection;->mCancellationSignalAttachCount:I
460
461 iget v0, p0, Landroid/database/sqlite/SQLiteConnection;->mCancellationSignalAttachCount:I
462
463 if-ne v0, v2, :cond_0
464
465 iget-wide v0, p0, Landroid/database/sqlite/SQLiteConnection;->mConnectionPtr:J
466
467 invoke-static {v0, v1, v2}, Landroid/database/sqlite/SQLiteConnection;->nativeResetCancel(JZ)V
468
469 invoke-virtual {p1, p0}, Landroid/os/CancellationSignal;->setOnCancelListener(Landroid/os/CancellationSignal$OnCancelListener;)V
470
471 :cond_0
472 return-void
473.end method
474
475.method private bindArguments(Landroid/database/sqlite/SQLiteConnection$PreparedStatement;[Ljava/lang/Object;)V
476 .locals 11
477
478 const/4 v10, 0x0
479
480 if-eqz p2, :cond_0
481
482 array-length v8, p2
483
484 :goto_0
485 iget v0, p1, Landroid/database/sqlite/SQLiteConnection$PreparedStatement;->mNumParameters:I
486
487 if-eq v8, v0, :cond_1
488
489 new-instance v0, Landroid/database/sqlite/SQLiteBindOrColumnIndexOutOfRangeException;
490
491 new-instance v1, Ljava/lang/StringBuilder;
492
493 invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
494
495 const-string/jumbo v4, "Expected "
496
497 invoke-virtual {v1, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
498
499 move-result-object v1
500
501 iget v4, p1, Landroid/database/sqlite/SQLiteConnection$PreparedStatement;->mNumParameters:I
502
503 invoke-virtual {v1, v4}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
504
505 move-result-object v1
506
507 const-string/jumbo v4, " bind arguments but "
508
509 invoke-virtual {v1, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
510
511 move-result-object v1
512
513 invoke-virtual {v1, v8}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
514
515 move-result-object v1
516
517 const-string/jumbo v4, " were provided."
518
519 invoke-virtual {v1, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
520
521 move-result-object v1
522
523 invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
524
525 move-result-object v1
526
527 invoke-direct {v0, v1}, Landroid/database/sqlite/SQLiteBindOrColumnIndexOutOfRangeException;-><init>(Ljava/lang/String;)V
528
529 throw v0
530
531 :cond_0
532 const/4 v8, 0x0
533
534 goto :goto_0
535
536 :cond_1
537 if-nez v8, :cond_2
538
539 return-void
540
541 :cond_2
542 iget-wide v2, p1, Landroid/database/sqlite/SQLiteConnection$PreparedStatement;->mStatementPtr:J
543
544 const/4 v9, 0x0
545
546 :goto_1
547 if-ge v9, v8, :cond_5
548
549 aget-object v7, p2, v9
550
551 invoke-static {v7}, Landroid/database/DatabaseUtils;->getTypeOfObject(Ljava/lang/Object;)I
552
553 move-result v0
554
555 packed-switch v0, :pswitch_data_0
556
557 :pswitch_0
558 instance-of v0, v7, Ljava/lang/Boolean;
559
560 if-eqz v0, :cond_4
561
562 iget-wide v0, p0, Landroid/database/sqlite/SQLiteConnection;->mConnectionPtr:J
563
564 add-int/lit8 v4, v9, 0x1
565
566 check-cast v7, Ljava/lang/Boolean;
567
568 invoke-virtual {v7}, Ljava/lang/Boolean;->booleanValue()Z
569
570 move-result v5
571
572 if-eqz v5, :cond_3
573
574 const/4 v5, 0x1
575
576 :goto_2
577 int-to-long v5, v5
578
579 invoke-static/range {v0 .. v6}, Landroid/database/sqlite/SQLiteConnection;->nativeBindLong(JJIJ)V
580
581 :goto_3
582 add-int/lit8 v9, v9, 0x1
583
584 goto :goto_1
585
586 :pswitch_1
587 iget-wide v0, p0, Landroid/database/sqlite/SQLiteConnection;->mConnectionPtr:J
588
589 add-int/lit8 v4, v9, 0x1
590
591 invoke-static {v0, v1, v2, v3, v4}, Landroid/database/sqlite/SQLiteConnection;->nativeBindNull(JJI)V
592
593 goto :goto_3
594
595 :pswitch_2
596 iget-wide v0, p0, Landroid/database/sqlite/SQLiteConnection;->mConnectionPtr:J
597
598 add-int/lit8 v4, v9, 0x1
599
600 check-cast v7, Ljava/lang/Number;
601
602 invoke-virtual {v7}, Ljava/lang/Number;->longValue()J
603
604 move-result-wide v5
605
606 invoke-static/range {v0 .. v6}, Landroid/database/sqlite/SQLiteConnection;->nativeBindLong(JJIJ)V
607
608 goto :goto_3
609
610 :pswitch_3
611 iget-wide v0, p0, Landroid/database/sqlite/SQLiteConnection;->mConnectionPtr:J
612
613 add-int/lit8 v4, v9, 0x1
614
615 check-cast v7, Ljava/lang/Number;
616
617 invoke-virtual {v7}, Ljava/lang/Number;->doubleValue()D
618
619 move-result-wide v5
620
621 invoke-static/range {v0 .. v6}, Landroid/database/sqlite/SQLiteConnection;->nativeBindDouble(JJID)V
622
623 goto :goto_3
624
625 :pswitch_4
626 iget-wide v0, p0, Landroid/database/sqlite/SQLiteConnection;->mConnectionPtr:J
627
628 add-int/lit8 v4, v9, 0x1
629
630 move-object v5, v7
631
632 check-cast v5, [B
633
634 invoke-static/range {v0 .. v5}, Landroid/database/sqlite/SQLiteConnection;->nativeBindBlob(JJI[B)V
635
636 goto :goto_3
637
638 :cond_3
639 move v5, v10
640
641 goto :goto_2
642
643 :cond_4
644 iget-wide v0, p0, Landroid/database/sqlite/SQLiteConnection;->mConnectionPtr:J
645
646 add-int/lit8 v4, v9, 0x1
647
648 invoke-virtual {v7}, Ljava/lang/Object;->toString()Ljava/lang/String;
649
650 move-result-object v5
651
652 invoke-static/range {v0 .. v5}, Landroid/database/sqlite/SQLiteConnection;->nativeBindString(JJILjava/lang/String;)V
653
654 goto :goto_3
655
656 :cond_5
657 return-void
658
659 nop
660
661 :pswitch_data_0
662 .packed-switch 0x0
663 :pswitch_1
664 :pswitch_2
665 :pswitch_3
666 :pswitch_0
667 :pswitch_4
668 .end packed-switch
669.end method
670
671.method private static canonicalizeSyncMode(Ljava/lang/String;)Ljava/lang/String;
672 .locals 1
673
674 const-string/jumbo v0, "0"
675
676 invoke-virtual {p0, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
677
678 move-result v0
679
680 if-eqz v0, :cond_0
681
682 const-string/jumbo v0, "OFF"
683
684 return-object v0
685
686 :cond_0
687 const-string/jumbo v0, "1"
688
689 invoke-virtual {p0, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
690
691 move-result v0
692
693 if-eqz v0, :cond_1
694
695 const-string/jumbo v0, "NORMAL"
696
697 return-object v0
698
699 :cond_1
700 const-string/jumbo v0, "2"
701
702 invoke-virtual {p0, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
703
704 move-result v0
705
706 if-eqz v0, :cond_2
707
708 const-string/jumbo v0, "FULL"
709
710 return-object v0
711
712 :cond_2
713 return-object p0
714.end method
715
716.method private destroyExpert()V
717 .locals 0
718
719 return-void
720.end method
721
722.method private detachCancellationSignal(Landroid/os/CancellationSignal;)V
723 .locals 3
724
725 const/4 v1, 0x0
726
727 const/4 v2, 0x0
728
729 if-eqz p1, :cond_1
730
731 sget-boolean v0, Landroid/database/sqlite/SQLiteConnection;->-assertionsDisabled:Z
732
733 if-nez v0, :cond_0
734
735 iget v0, p0, Landroid/database/sqlite/SQLiteConnection;->mCancellationSignalAttachCount:I
736
737 if-gtz v0, :cond_0
738
739 new-instance v0, Ljava/lang/AssertionError;
740
741 invoke-direct {v0}, Ljava/lang/AssertionError;-><init>()V
742
743 throw v0
744
745 :cond_0
746 iget v0, p0, Landroid/database/sqlite/SQLiteConnection;->mCancellationSignalAttachCount:I
747
748 add-int/lit8 v0, v0, -0x1
749
750 iput v0, p0, Landroid/database/sqlite/SQLiteConnection;->mCancellationSignalAttachCount:I
751
752 iget v0, p0, Landroid/database/sqlite/SQLiteConnection;->mCancellationSignalAttachCount:I
753
754 if-nez v0, :cond_1
755
756 invoke-virtual {p1, v1}, Landroid/os/CancellationSignal;->setOnCancelListener(Landroid/os/CancellationSignal$OnCancelListener;)V
757
758 iget-wide v0, p0, Landroid/database/sqlite/SQLiteConnection;->mConnectionPtr:J
759
760 invoke-static {v0, v1, v2}, Landroid/database/sqlite/SQLiteConnection;->nativeResetCancel(JZ)V
761
762 :cond_1
763 return-void
764.end method
765
766.method private dispose(Z)V
767 .locals 8
768
769 const-wide/16 v6, 0x0
770
771 const/4 v4, 0x0
772
773 iget-object v1, p0, Landroid/database/sqlite/SQLiteConnection;->mCloseGuard:Ldalvik/system/CloseGuard;
774
775 if-eqz v1, :cond_1
776
777 if-eqz p1, :cond_0
778
779 iget-object v1, p0, Landroid/database/sqlite/SQLiteConnection;->mCloseGuard:Ldalvik/system/CloseGuard;
780
781 invoke-virtual {v1}, Ldalvik/system/CloseGuard;->warnIfOpen()V
782
783 :cond_0
784 iget-object v1, p0, Landroid/database/sqlite/SQLiteConnection;->mCloseGuard:Ldalvik/system/CloseGuard;
785
786 invoke-virtual {v1}, Ldalvik/system/CloseGuard;->close()V
787
788 :cond_1
789 iget-wide v2, p0, Landroid/database/sqlite/SQLiteConnection;->mConnectionPtr:J
790
791 cmp-long v1, v2, v6
792
793 if-eqz v1, :cond_3
794
795 iget-object v1, p0, Landroid/database/sqlite/SQLiteConnection;->mRecentOperations:Landroid/database/sqlite/SQLiteConnection$OperationLog;
796
797 const-string/jumbo v2, "close"
798
799 invoke-virtual {v1, v2, v4, v4}, Landroid/database/sqlite/SQLiteConnection$OperationLog;->beginOperation(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/Object;)I
800
801 move-result v0
802
803 :try_start_0
804 iget-object v1, p0, Landroid/database/sqlite/SQLiteConnection;->mPreparedStatementCache:Landroid/database/sqlite/SQLiteConnection$PreparedStatementCache;
805
806 invoke-virtual {v1}, Landroid/database/sqlite/SQLiteConnection$PreparedStatementCache;->evictAll()V
807
808 iget-wide v2, p0, Landroid/database/sqlite/SQLiteConnection;->mConnectionPtr:J
809
810 invoke-static {v2, v3}, Landroid/database/sqlite/SQLiteConnection;->nativeClose(J)V
811
812 const-wide/16 v2, 0x0
813
814 iput-wide v2, p0, Landroid/database/sqlite/SQLiteConnection;->mConnectionPtr:J
815
816 const/4 v1, 0x0
817
818 iput-boolean v1, p0, Landroid/database/sqlite/SQLiteConnection;->mIsOpen:Z
819
820 sget-boolean v1, Landroid/database/sqlite/SQLiteDebug;->DEBUG_ENABLE:Z
821
822 if-eqz v1, :cond_2
823
824 invoke-direct {p0}, Landroid/database/sqlite/SQLiteConnection;->destroyExpert()V
825 :try_end_0
826 .catchall {:try_start_0 .. :try_end_0} :catchall_0
827
828 :cond_2
829 iget-object v1, p0, Landroid/database/sqlite/SQLiteConnection;->mRecentOperations:Landroid/database/sqlite/SQLiteConnection$OperationLog;
830
831 invoke-virtual {v1, v0}, Landroid/database/sqlite/SQLiteConnection$OperationLog;->endOperationDeferLog(I)Z
832
833 move-result v1
834
835 if-eqz v1, :cond_3
836
837 iget-object v1, p0, Landroid/database/sqlite/SQLiteConnection;->mRecentOperations:Landroid/database/sqlite/SQLiteConnection$OperationLog;
838
839 new-instance v2, Ljava/lang/StringBuilder;
840
841 invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
842
843 const-string/jumbo v3, "window=\'"
844
845 invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
846
847 move-result-object v2
848
849 iget-object v3, p0, Landroid/database/sqlite/SQLiteConnection;->mConfiguration:Landroid/database/sqlite/SQLiteDatabaseConfiguration;
850
851 iget-object v3, v3, Landroid/database/sqlite/SQLiteDatabaseConfiguration;->path:Ljava/lang/String;
852
853 invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
854
855 move-result-object v2
856
857 const-string/jumbo v3, "\'"
858
859 invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
860
861 move-result-object v2
862
863 invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
864
865 move-result-object v2
866
867 invoke-virtual {v1, v0, v2}, Landroid/database/sqlite/SQLiteConnection$OperationLog;->logOperation(ILjava/lang/String;)V
868
869 :cond_3
870 return-void
871
872 :catchall_0
873 move-exception v1
874
875 iget-object v2, p0, Landroid/database/sqlite/SQLiteConnection;->mRecentOperations:Landroid/database/sqlite/SQLiteConnection$OperationLog;
876
877 invoke-virtual {v2, v0}, Landroid/database/sqlite/SQLiteConnection$OperationLog;->endOperationDeferLog(I)Z
878
879 move-result v2
880
881 if-eqz v2, :cond_4
882
883 iget-object v2, p0, Landroid/database/sqlite/SQLiteConnection;->mRecentOperations:Landroid/database/sqlite/SQLiteConnection$OperationLog;
884
885 new-instance v3, Ljava/lang/StringBuilder;
886
887 invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
888
889 const-string/jumbo v4, "window=\'"
890
891 invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
892
893 move-result-object v3
894
895 iget-object v4, p0, Landroid/database/sqlite/SQLiteConnection;->mConfiguration:Landroid/database/sqlite/SQLiteDatabaseConfiguration;
896
897 iget-object v4, v4, Landroid/database/sqlite/SQLiteDatabaseConfiguration;->path:Ljava/lang/String;
898
899 invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
900
901 move-result-object v3
902
903 const-string/jumbo v4, "\'"
904
905 invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
906
907 move-result-object v3
908
909 invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
910
911 move-result-object v3
912
913 invoke-virtual {v2, v0, v3}, Landroid/database/sqlite/SQLiteConnection$OperationLog;->logOperation(ILjava/lang/String;)V
914
915 :cond_4
916 throw v1
917.end method
918
919.method private finalizePreparedStatement(Landroid/database/sqlite/SQLiteConnection$PreparedStatement;)V
920 .locals 4
921
922 iget-wide v0, p0, Landroid/database/sqlite/SQLiteConnection;->mConnectionPtr:J
923
924 iget-wide v2, p1, Landroid/database/sqlite/SQLiteConnection$PreparedStatement;->mStatementPtr:J
925
926 invoke-static {v0, v1, v2, v3}, Landroid/database/sqlite/SQLiteConnection;->nativeFinalizeStatement(JJ)V
927
928 invoke-direct {p0, p1}, Landroid/database/sqlite/SQLiteConnection;->recyclePreparedStatement(Landroid/database/sqlite/SQLiteConnection$PreparedStatement;)V
929
930 return-void
931.end method
932
933.method private getMainDbStatsUnsafe(IJJ)Landroid/database/sqlite/SQLiteDebug$DbStats;
934 .locals 10
935
936 iget-object v0, p0, Landroid/database/sqlite/SQLiteConnection;->mConfiguration:Landroid/database/sqlite/SQLiteDatabaseConfiguration;
937
938 iget-object v1, v0, Landroid/database/sqlite/SQLiteDatabaseConfiguration;->path:Ljava/lang/String;
939
940 iget-boolean v0, p0, Landroid/database/sqlite/SQLiteConnection;->mIsPrimaryConnection:Z
941
942 if-nez v0, :cond_0
943
944 new-instance v0, Ljava/lang/StringBuilder;
945
946 invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
947
948 invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
949
950 move-result-object v0
951
952 const-string/jumbo v2, " ("
953
954 invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
955
956 move-result-object v0
957
958 iget v2, p0, Landroid/database/sqlite/SQLiteConnection;->mConnectionId:I
959
960 invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
961
962 move-result-object v0
963
964 const-string/jumbo v2, ")"
965
966 invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
967
968 move-result-object v0
969
970 invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
971
972 move-result-object v1
973
974 :cond_0
975 new-instance v0, Landroid/database/sqlite/SQLiteDebug$DbStats;
976
977 iget-object v2, p0, Landroid/database/sqlite/SQLiteConnection;->mPreparedStatementCache:Landroid/database/sqlite/SQLiteConnection$PreparedStatementCache;
978
979 invoke-virtual {v2}, Landroid/database/sqlite/SQLiteConnection$PreparedStatementCache;->hitCount()I
980
981 move-result v7
982
983 iget-object v2, p0, Landroid/database/sqlite/SQLiteConnection;->mPreparedStatementCache:Landroid/database/sqlite/SQLiteConnection$PreparedStatementCache;
984
985 invoke-virtual {v2}, Landroid/database/sqlite/SQLiteConnection$PreparedStatementCache;->missCount()I
986
987 move-result v8
988
989 iget-object v2, p0, Landroid/database/sqlite/SQLiteConnection;->mPreparedStatementCache:Landroid/database/sqlite/SQLiteConnection$PreparedStatementCache;
990
991 invoke-virtual {v2}, Landroid/database/sqlite/SQLiteConnection$PreparedStatementCache;->size()I
992
993 move-result v9
994
995 move-wide v2, p2
996
997 move-wide v4, p4
998
999 move v6, p1
1000
1001 invoke-direct/range {v0 .. v9}, Landroid/database/sqlite/SQLiteDebug$DbStats;-><init>(Ljava/lang/String;JJIIII)V
1002
1003 return-object v0
1004.end method
1005
1006.method private static isCacheable(I)Z
1007 .locals 2
1008
1009 const/4 v1, 0x1
1010
1011 const/4 v0, 0x2
1012
1013 if-eq p0, v0, :cond_0
1014
1015 if-ne p0, v1, :cond_1
1016
1017 :cond_0
1018 return v1
1019
1020 :cond_1
1021 const/4 v0, 0x0
1022
1023 return v0
1024.end method
1025
1026.method public static native nativeBackup(Ljava/lang/String;Ljava/lang/String;)I
1027.end method
1028
1029.method public static native nativeBackupDatabaseFile(Ljava/lang/String;Ljava/lang/String;)I
1030.end method
1031
1032.method public static native nativeBackupSecureDatabaseFile(Ljava/lang/String;Ljava/lang/String;[B)I
1033.end method
1034
1035.method private static native nativeBindBlob(JJI[B)V
1036.end method
1037
1038.method private static native nativeBindDouble(JJID)V
1039.end method
1040
1041.method private static native nativeBindLong(JJIJ)V
1042.end method
1043
1044.method private static native nativeBindNull(JJI)V
1045.end method
1046
1047.method private static native nativeBindString(JJILjava/lang/String;)V
1048.end method
1049
1050.method private static native nativeCancel(J)V
1051.end method
1052
1053.method private static native nativeChangePassword(J[B)[B
1054.end method
1055
1056.method private static native nativeClose(J)V
1057.end method
1058
1059.method private static native nativeExecute(JJ)V
1060.end method
1061
1062.method private static native nativeExecuteForBlobFileDescriptor(JJ)I
1063.end method
1064
1065.method private static native nativeExecuteForChangedRowCount(JJ)I
1066.end method
1067
1068.method private static native nativeExecuteForCursorWindow(JJJIIZ)J
1069.end method
1070
1071.method private static native nativeExecuteForLastInsertedRowId(JJ)J
1072.end method
1073
1074.method private static native nativeExecuteForLong(JJ)J
1075.end method
1076
1077.method private static native nativeExecuteForString(JJ)Ljava/lang/String;
1078.end method
1079
1080.method private static native nativeExportDB(JLjava/lang/String;)V
1081.end method
1082
1083.method private static native nativeFinalizeStatement(JJ)V
1084.end method
1085
1086.method private static native nativeGetColumnCount(JJ)I
1087.end method
1088
1089.method private static native nativeGetColumnName(JJI)Ljava/lang/String;
1090.end method
1091
1092.method private static native nativeGetDbLookaside(J)I
1093.end method
1094
1095.method private static native nativeGetParameterCount(JJ)I
1096.end method
1097
1098.method private static native nativeIsReadOnly(JJ)Z
1099.end method
1100
1101.method private static native nativeOpen(Ljava/lang/String;ILjava/lang/String;ZZ)J
1102.end method
1103
1104.method private static native nativePrepareStatement(JLjava/lang/String;)J
1105.end method
1106
1107.method private static native nativeRegisterCustomFunction(JLandroid/database/sqlite/SQLiteCustomFunction;)V
1108.end method
1109
1110.method private static native nativeRegisterLocalizedCollators(JLjava/lang/String;)V
1111.end method
1112
1113.method private static native nativeResetCancel(JZ)V
1114.end method
1115
1116.method private static native nativeResetStatementAndClearBindings(JJ)V
1117.end method
1118
1119.method public static native nativeRestoreDatabaseFile(Ljava/lang/String;Ljava/lang/String;)I
1120.end method
1121
1122.method public static native nativeRestoreSecureDatabaseFile(Ljava/lang/String;Ljava/lang/String;[B)I
1123.end method
1124
1125.method private static native nativeSetPassword(J[B)[B
1126.end method
1127
1128.method private obtainPreparedStatement(Ljava/lang/String;JIIZ)Landroid/database/sqlite/SQLiteConnection$PreparedStatement;
1129 .locals 4
1130
1131 const/4 v2, 0x0
1132
1133 iget-object v0, p0, Landroid/database/sqlite/SQLiteConnection;->mPreparedStatementPool:Landroid/database/sqlite/SQLiteConnection$PreparedStatement;
1134
1135 if-eqz v0, :cond_0
1136
1137 iget-object v1, v0, Landroid/database/sqlite/SQLiteConnection$PreparedStatement;->mPoolNext:Landroid/database/sqlite/SQLiteConnection$PreparedStatement;
1138
1139 iput-object v1, p0, Landroid/database/sqlite/SQLiteConnection;->mPreparedStatementPool:Landroid/database/sqlite/SQLiteConnection$PreparedStatement;
1140
1141 iput-object v2, v0, Landroid/database/sqlite/SQLiteConnection$PreparedStatement;->mPoolNext:Landroid/database/sqlite/SQLiteConnection$PreparedStatement;
1142
1143 const/4 v1, 0x0
1144
1145 iput-boolean v1, v0, Landroid/database/sqlite/SQLiteConnection$PreparedStatement;->mInCache:Z
1146
1147 :goto_0
1148 iput-object p1, v0, Landroid/database/sqlite/SQLiteConnection$PreparedStatement;->mSql:Ljava/lang/String;
1149
1150 iput-wide p2, v0, Landroid/database/sqlite/SQLiteConnection$PreparedStatement;->mStatementPtr:J
1151
1152 iput p4, v0, Landroid/database/sqlite/SQLiteConnection$PreparedStatement;->mNumParameters:I
1153
1154 iput p5, v0, Landroid/database/sqlite/SQLiteConnection$PreparedStatement;->mType:I
1155
1156 iput-boolean p6, v0, Landroid/database/sqlite/SQLiteConnection$PreparedStatement;->mReadOnly:Z
1157
1158 return-object v0
1159
1160 :cond_0
1161 new-instance v0, Landroid/database/sqlite/SQLiteConnection$PreparedStatement;
1162
1163 invoke-direct {v0, v2}, Landroid/database/sqlite/SQLiteConnection$PreparedStatement;-><init>(Landroid/database/sqlite/SQLiteConnection$PreparedStatement;)V
1164
1165 goto :goto_0
1166.end method
1167
1168.method static open(Landroid/database/sqlite/SQLiteConnectionPool;Landroid/database/sqlite/SQLiteDatabaseConfiguration;IZ)Landroid/database/sqlite/SQLiteConnection;
1169 .locals 3
1170
1171 new-instance v0, Landroid/database/sqlite/SQLiteConnection;
1172
1173 invoke-direct {v0, p0, p1, p2, p3}, Landroid/database/sqlite/SQLiteConnection;-><init>(Landroid/database/sqlite/SQLiteConnectionPool;Landroid/database/sqlite/SQLiteDatabaseConfiguration;IZ)V
1174
1175 :try_start_0
1176 invoke-direct {v0}, Landroid/database/sqlite/SQLiteConnection;->open()V
1177 :try_end_0
1178 .catch Landroid/database/sqlite/SQLiteException; {:try_start_0 .. :try_end_0} :catch_0
1179
1180 return-object v0
1181
1182 :catch_0
1183 move-exception v1
1184
1185 const/4 v2, 0x0
1186
1187 invoke-direct {v0, v2}, Landroid/database/sqlite/SQLiteConnection;->dispose(Z)V
1188
1189 throw v1
1190.end method
1191
1192.method private open()V
1193 .locals 10
1194
1195 iget-object v0, p0, Landroid/database/sqlite/SQLiteConnection;->mConfiguration:Landroid/database/sqlite/SQLiteDatabaseConfiguration;
1196
1197 iget-object v0, v0, Landroid/database/sqlite/SQLiteDatabaseConfiguration;->path:Ljava/lang/String;
1198
1199 iget-object v1, p0, Landroid/database/sqlite/SQLiteConnection;->mConfiguration:Landroid/database/sqlite/SQLiteDatabaseConfiguration;
1200
1201 iget v1, v1, Landroid/database/sqlite/SQLiteDatabaseConfiguration;->openFlags:I
1202
1203 iget-object v2, p0, Landroid/database/sqlite/SQLiteConnection;->mConfiguration:Landroid/database/sqlite/SQLiteDatabaseConfiguration;
1204
1205 iget-object v2, v2, Landroid/database/sqlite/SQLiteDatabaseConfiguration;->label:Ljava/lang/String;
1206
1207 sget-boolean v3, Landroid/database/sqlite/SQLiteDebug;->DEBUG_SQL_STATEMENTS:Z
1208
1209 sget-boolean v4, Landroid/database/sqlite/SQLiteDebug;->DEBUG_SQL_TIME:Z
1210
1211 iget-object v5, p0, Landroid/database/sqlite/SQLiteConnection;->mConfiguration:Landroid/database/sqlite/SQLiteDatabaseConfiguration;
1212
1213 iget v5, v5, Landroid/database/sqlite/SQLiteDatabaseConfiguration;->lookasideSlotSize:I
1214
1215 iget-object v6, p0, Landroid/database/sqlite/SQLiteConnection;->mConfiguration:Landroid/database/sqlite/SQLiteDatabaseConfiguration;
1216
1217 iget v6, v6, Landroid/database/sqlite/SQLiteDatabaseConfiguration;->lookasideSlotCount:I
1218
1219 invoke-static/range {v0 .. v4}, Landroid/database/sqlite/SQLiteConnection;->nativeOpen(Ljava/lang/String;ILjava/lang/String;ZZ)J
1220
1221 move-result-wide v0
1222
1223 iput-wide v0, p0, Landroid/database/sqlite/SQLiteConnection;->mConnectionPtr:J
1224
1225 iget-wide v0, p0, Landroid/database/sqlite/SQLiteConnection;->mConnectionPtr:J
1226
1227 const-wide/16 v2, 0x0
1228
1229 cmp-long v0, v0, v2
1230
1231 if-nez v0, :cond_0
1232
1233 return-void
1234
1235 :cond_0
1236 invoke-direct {p0}, Landroid/database/sqlite/SQLiteConnection;->setPageSize()V
1237
1238 invoke-direct {p0}, Landroid/database/sqlite/SQLiteConnection;->setForeignKeyModeFromConfiguration()V
1239
1240 invoke-direct {p0}, Landroid/database/sqlite/SQLiteConnection;->setWalModeFromConfiguration()V
1241
1242 invoke-direct {p0}, Landroid/database/sqlite/SQLiteConnection;->setJournalSizeLimit()V
1243
1244 invoke-direct {p0}, Landroid/database/sqlite/SQLiteConnection;->setAutoCheckpointInterval()V
1245
1246 invoke-direct {p0}, Landroid/database/sqlite/SQLiteConnection;->setLocaleFromConfiguration()V
1247
1248 invoke-direct {p0}, Landroid/database/sqlite/SQLiteConnection;->setAutomaticIndexFromConfiguration()V
1249
1250 invoke-direct {p0}, Landroid/database/sqlite/SQLiteConnection;->setBusyTimeoutFromConfiguration()V
1251
1252 invoke-direct {p0}, Landroid/database/sqlite/SQLiteConnection;->setCacheSizeFromConfiguration()V
1253
1254 invoke-direct {p0}, Landroid/database/sqlite/SQLiteConnection;->setCaseSensitiveLikeFromConfiguration()V
1255
1256 iget-object v0, p0, Landroid/database/sqlite/SQLiteConnection;->mConfiguration:Landroid/database/sqlite/SQLiteDatabaseConfiguration;
1257
1258 iget-object v0, v0, Landroid/database/sqlite/SQLiteDatabaseConfiguration;->customFunctions:Ljava/util/ArrayList;
1259
1260 invoke-virtual {v0}, Ljava/util/ArrayList;->size()I
1261
1262 move-result v8
1263
1264 const/4 v9, 0x0
1265
1266 :goto_0
1267 if-ge v9, v8, :cond_1
1268
1269 iget-object v0, p0, Landroid/database/sqlite/SQLiteConnection;->mConfiguration:Landroid/database/sqlite/SQLiteDatabaseConfiguration;
1270
1271 iget-object v0, v0, Landroid/database/sqlite/SQLiteDatabaseConfiguration;->customFunctions:Ljava/util/ArrayList;
1272
1273 invoke-virtual {v0, v9}, Ljava/util/ArrayList;->get(I)Ljava/lang/Object;
1274
1275 move-result-object v7
1276
1277 check-cast v7, Landroid/database/sqlite/SQLiteCustomFunction;
1278
1279 iget-wide v0, p0, Landroid/database/sqlite/SQLiteConnection;->mConnectionPtr:J
1280
1281 invoke-static {v0, v1, v7}, Landroid/database/sqlite/SQLiteConnection;->nativeRegisterCustomFunction(JLandroid/database/sqlite/SQLiteCustomFunction;)V
1282
1283 add-int/lit8 v9, v9, 0x1
1284
1285 goto :goto_0
1286
1287 :cond_1
1288 const/4 v0, 0x1
1289
1290 iput-boolean v0, p0, Landroid/database/sqlite/SQLiteConnection;->mIsOpen:Z
1291
1292 return-void
1293.end method
1294
1295.method private open([B)V
1296 .locals 8
1297
1298 iget-object v0, p0, Landroid/database/sqlite/SQLiteConnection;->mConfiguration:Landroid/database/sqlite/SQLiteDatabaseConfiguration;
1299
1300 iget-object v0, v0, Landroid/database/sqlite/SQLiteDatabaseConfiguration;->path:Ljava/lang/String;
1301
1302 iget-object v1, p0, Landroid/database/sqlite/SQLiteConnection;->mConfiguration:Landroid/database/sqlite/SQLiteDatabaseConfiguration;
1303
1304 iget v1, v1, Landroid/database/sqlite/SQLiteDatabaseConfiguration;->openFlags:I
1305
1306 iget-object v2, p0, Landroid/database/sqlite/SQLiteConnection;->mConfiguration:Landroid/database/sqlite/SQLiteDatabaseConfiguration;
1307
1308 iget-object v2, v2, Landroid/database/sqlite/SQLiteDatabaseConfiguration;->label:Ljava/lang/String;
1309
1310 sget-boolean v3, Landroid/database/sqlite/SQLiteDebug;->DEBUG_SQL_STATEMENTS:Z
1311
1312 sget-boolean v4, Landroid/database/sqlite/SQLiteDebug;->DEBUG_SQL_TIME:Z
1313
1314 iget-object v5, p0, Landroid/database/sqlite/SQLiteConnection;->mConfiguration:Landroid/database/sqlite/SQLiteDatabaseConfiguration;
1315
1316 iget v5, v5, Landroid/database/sqlite/SQLiteDatabaseConfiguration;->lookasideSlotSize:I
1317
1318 iget-object v6, p0, Landroid/database/sqlite/SQLiteConnection;->mConfiguration:Landroid/database/sqlite/SQLiteDatabaseConfiguration;
1319
1320 iget v6, v6, Landroid/database/sqlite/SQLiteDatabaseConfiguration;->lookasideSlotCount:I
1321
1322 invoke-static/range {v0 .. v4}, Landroid/database/sqlite/SQLiteConnection;->nativeOpen(Ljava/lang/String;ILjava/lang/String;ZZ)J
1323
1324 move-result-wide v0
1325
1326 iput-wide v0, p0, Landroid/database/sqlite/SQLiteConnection;->mConnectionPtr:J
1327
1328 iget-wide v0, p0, Landroid/database/sqlite/SQLiteConnection;->mConnectionPtr:J
1329
1330 const-wide/16 v2, 0x0
1331
1332 cmp-long v0, v0, v2
1333
1334 if-nez v0, :cond_0
1335
1336 return-void
1337
1338 :cond_0
1339 invoke-virtual {p0, p1}, Landroid/database/sqlite/SQLiteConnection;->setPassword([B)[B
1340
1341 move-result-object v7
1342
1343 invoke-direct {p0}, Landroid/database/sqlite/SQLiteConnection;->setForeignKeyModeFromConfiguration()V
1344
1345 invoke-direct {p0}, Landroid/database/sqlite/SQLiteConnection;->setWalModeFromConfiguration()V
1346
1347 invoke-direct {p0}, Landroid/database/sqlite/SQLiteConnection;->setJournalSizeLimit()V
1348
1349 invoke-direct {p0}, Landroid/database/sqlite/SQLiteConnection;->setAutoCheckpointInterval()V
1350
1351 invoke-direct {p0}, Landroid/database/sqlite/SQLiteConnection;->setLocaleFromConfiguration()V
1352
1353 invoke-direct {p0}, Landroid/database/sqlite/SQLiteConnection;->setAutomaticIndexFromConfiguration()V
1354
1355 invoke-direct {p0}, Landroid/database/sqlite/SQLiteConnection;->setBusyTimeoutFromConfiguration()V
1356
1357 invoke-direct {p0}, Landroid/database/sqlite/SQLiteConnection;->setCacheSizeFromConfiguration()V
1358
1359 invoke-direct {p0}, Landroid/database/sqlite/SQLiteConnection;->setCaseSensitiveLikeFromConfiguration()V
1360
1361 iget-object v0, p0, Landroid/database/sqlite/SQLiteConnection;->mPool:Landroid/database/sqlite/SQLiteConnectionPool;
1362
1363 invoke-virtual {v0, v7}, Landroid/database/sqlite/SQLiteConnectionPool;->saveConnectionKey([B)V
1364
1365 const/4 v0, 0x1
1366
1367 iput-boolean v0, p0, Landroid/database/sqlite/SQLiteConnection;->mIsOpen:Z
1368
1369 return-void
1370.end method
1371
1372.method static openSecure(Landroid/database/sqlite/SQLiteConnectionPool;Landroid/database/sqlite/SQLiteDatabaseConfiguration;IZ[B)Landroid/database/sqlite/SQLiteConnection;
1373 .locals 3
1374
1375 new-instance v0, Landroid/database/sqlite/SQLiteConnection;
1376
1377 invoke-direct {v0, p0, p1, p2, p3}, Landroid/database/sqlite/SQLiteConnection;-><init>(Landroid/database/sqlite/SQLiteConnectionPool;Landroid/database/sqlite/SQLiteDatabaseConfiguration;IZ)V
1378
1379 :try_start_0
1380 invoke-direct {v0, p4}, Landroid/database/sqlite/SQLiteConnection;->open([B)V
1381 :try_end_0
1382 .catch Landroid/database/sqlite/SQLiteException; {:try_start_0 .. :try_end_0} :catch_0
1383
1384 return-object v0
1385
1386 :catch_0
1387 move-exception v1
1388
1389 const/4 v2, 0x0
1390
1391 invoke-direct {v0, v2}, Landroid/database/sqlite/SQLiteConnection;->dispose(Z)V
1392
1393 throw v1
1394.end method
1395
1396.method private printQueryPlan(Ljava/lang/String;)V
1397 .locals 24
1398
1399 move-object/from16 v0, p0
1400
1401 iget-boolean v2, v0, Landroid/database/sqlite/SQLiteConnection;->mIsOpen:Z
1402
1403 if-nez v2, :cond_0
1404
1405 return-void
1406
1407 :cond_0
1408 const-wide/16 v4, 0x0
1409
1410 const/16 v22, 0x0
1411
1412 :try_start_0
1413 new-instance v23, Landroid/database/CursorWindow;
1414
1415 new-instance v2, Ljava/lang/StringBuilder;
1416
1417 invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
1418
1419 const-string/jumbo v3, "QueryPlan-"
1420
1421 invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
1422
1423 move-result-object v2
1424
1425 invoke-static {}, Ljava/lang/Thread;->currentThread()Ljava/lang/Thread;
1426
1427 move-result-object v3
1428
1429 invoke-virtual {v3}, Ljava/lang/Thread;->getId()J
1430
1431 move-result-wide v6
1432
1433 invoke-virtual {v2, v6, v7}, Ljava/lang/StringBuilder;->append(J)Ljava/lang/StringBuilder;
1434
1435 move-result-object v2
1436
1437 invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
1438
1439 move-result-object v2
1440
1441 move-object/from16 v0, v23
1442
1443 invoke-direct {v0, v2}, Landroid/database/CursorWindow;-><init>(Ljava/lang/String;)V
1444 :try_end_0
1445 .catch Ljava/lang/RuntimeException; {:try_start_0 .. :try_end_0} :catch_0
1446 .catchall {:try_start_0 .. :try_end_0} :catchall_0
1447
1448 :try_start_1
1449 move-object/from16 v0, p0
1450
1451 iget-wide v2, v0, Landroid/database/sqlite/SQLiteConnection;->mConnectionPtr:J
1452
1453 new-instance v6, Ljava/lang/StringBuilder;
1454
1455 invoke-direct {v6}, Ljava/lang/StringBuilder;-><init>()V
1456
1457 const-string/jumbo v7, "EXPLAIN QUERY PLAN "
1458
1459 invoke-virtual {v6, v7}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
1460
1461 move-result-object v6
1462
1463 move-object/from16 v0, p1
1464
1465 invoke-virtual {v6, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
1466
1467 move-result-object v6
1468
1469 invoke-virtual {v6}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
1470
1471 move-result-object v6
1472
1473 invoke-static {v2, v3, v6}, Landroid/database/sqlite/SQLiteConnection;->nativePrepareStatement(JLjava/lang/String;)J
1474
1475 move-result-wide v4
1476
1477 move-object/from16 v0, p0
1478
1479 iget-wide v2, v0, Landroid/database/sqlite/SQLiteConnection;->mConnectionPtr:J
1480
1481 move-object/from16 v0, v23
1482
1483 iget-wide v6, v0, Landroid/database/CursorWindow;->mWindowPtr:J
1484
1485 const/4 v8, 0x0
1486
1487 const/4 v9, 0x0
1488
1489 const/4 v10, 0x1
1490
1491 invoke-static/range {v2 .. v10}, Landroid/database/sqlite/SQLiteConnection;->nativeExecuteForCursorWindow(JJJIIZ)J
1492 :try_end_1
1493 .catch Ljava/lang/RuntimeException; {:try_start_1 .. :try_end_1} :catch_1
1494 .catchall {:try_start_1 .. :try_end_1} :catchall_1
1495
1496 move-result-wide v18
1497
1498 const-wide/16 v2, 0x0
1499
1500 cmp-long v2, v18, v2
1501
1502 if-nez v2, :cond_3
1503
1504 if-eqz v23, :cond_1
1505
1506 invoke-virtual/range {v23 .. v23}, Landroid/database/CursorWindow;->close()V
1507
1508 :cond_1
1509 const-wide/16 v2, 0x0
1510
1511 cmp-long v2, v4, v2
1512
1513 if-eqz v2, :cond_2
1514
1515 move-object/from16 v0, p0
1516
1517 iget-wide v2, v0, Landroid/database/sqlite/SQLiteConnection;->mConnectionPtr:J
1518
1519 invoke-static {v2, v3, v4, v5}, Landroid/database/sqlite/SQLiteConnection;->nativeFinalizeStatement(JJ)V
1520
1521 :cond_2
1522 return-void
1523
1524 :cond_3
1525 :try_start_2
1526 new-instance v20, Ljava/lang/StringBuilder;
1527
1528 invoke-direct/range {v20 .. v20}, Ljava/lang/StringBuilder;-><init>()V
1529
1530 const-string/jumbo v2, "plan=\""
1531
1532 move-object/from16 v0, v20
1533
1534 invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
1535
1536 const/4 v15, 0x0
1537
1538 :goto_0
1539 int-to-long v2, v15
1540
1541 cmp-long v2, v2, v18
1542
1543 if-gez v2, :cond_4
1544
1545 const/4 v2, 0x0
1546
1547 move-object/from16 v0, v23
1548
1549 invoke-virtual {v0, v15, v2}, Landroid/database/CursorWindow;->getInt(II)I
1550
1551 move-result v21
1552
1553 const/4 v2, 0x1
1554
1555 move-object/from16 v0, v23
1556
1557 invoke-virtual {v0, v15, v2}, Landroid/database/CursorWindow;->getInt(II)I
1558
1559 move-result v17
1560
1561 const/4 v2, 0x2
1562
1563 move-object/from16 v0, v23
1564
1565 invoke-virtual {v0, v15, v2}, Landroid/database/CursorWindow;->getInt(II)I
1566
1567 move-result v13
1568
1569 const/4 v2, 0x3
1570
1571 move-object/from16 v0, v23
1572
1573 invoke-virtual {v0, v15, v2}, Landroid/database/CursorWindow;->getString(II)Ljava/lang/String;
1574
1575 move-result-object v11
1576
1577 invoke-virtual/range {v20 .. v21}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
1578
1579 move-result-object v2
1580
1581 const-string/jumbo v3, "|"
1582
1583 invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
1584
1585 move-result-object v2
1586
1587 move/from16 v0, v17
1588
1589 invoke-virtual {v2, v0}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
1590
1591 move-result-object v2
1592
1593 const-string/jumbo v3, "|"
1594
1595 invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
1596
1597 move-result-object v2
1598
1599 invoke-virtual {v2, v13}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
1600
1601 move-result-object v2
1602
1603 const-string/jumbo v3, "|"
1604
1605 invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
1606
1607 move-result-object v2
1608
1609 invoke-virtual {v2, v11}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
1610
1611 move-result-object v2
1612
1613 const-string/jumbo v3, " * "
1614
1615 invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
1616
1617 add-int/lit8 v15, v15, 0x1
1618
1619 goto :goto_0
1620
1621 :cond_4
1622 new-instance v2, Ljava/lang/StringBuilder;
1623
1624 invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
1625
1626 move-object/from16 v0, p1
1627
1628 invoke-virtual {v2, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
1629
1630 move-result-object v2
1631
1632 move-object/from16 v0, p0
1633
1634 iget-object v3, v0, Landroid/database/sqlite/SQLiteConnection;->mConfiguration:Landroid/database/sqlite/SQLiteDatabaseConfiguration;
1635
1636 iget-object v3, v3, Landroid/database/sqlite/SQLiteDatabaseConfiguration;->path:Ljava/lang/String;
1637
1638 invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
1639
1640 move-result-object v2
1641
1642 invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
1643
1644 move-result-object v2
1645
1646 invoke-virtual {v2}, Ljava/lang/String;->hashCode()I
1647
1648 move-result v2
1649
1650 invoke-static {v2}, Ljava/lang/Integer;->toHexString(I)Ljava/lang/String;
1651
1652 move-result-object v14
1653
1654 new-instance v2, Ljava/lang/StringBuilder;
1655
1656 invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
1657
1658 invoke-virtual/range {v20 .. v20}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
1659
1660 move-result-object v3
1661
1662 invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
1663
1664 move-result-object v2
1665
1666 const-string/jumbo v3, "\", sql=\""
1667
1668 invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
1669
1670 move-result-object v2
1671
1672 invoke-static/range {p1 .. p1}, Landroid/database/sqlite/SQLiteConnection;->trimSqlForDisplay(Ljava/lang/String;)Ljava/lang/String;
1673
1674 move-result-object v3
1675
1676 invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
1677
1678 move-result-object v2
1679
1680 const-string/jumbo v3, "\", window=\'"
1681
1682 invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
1683
1684 move-result-object v2
1685
1686 move-object/from16 v0, p0
1687
1688 iget-object v3, v0, Landroid/database/sqlite/SQLiteConnection;->mConfiguration:Landroid/database/sqlite/SQLiteDatabaseConfiguration;
1689
1690 iget-object v3, v3, Landroid/database/sqlite/SQLiteDatabaseConfiguration;->path:Ljava/lang/String;
1691
1692 invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
1693
1694 move-result-object v2
1695
1696 const-string/jumbo v3, "\', hash="
1697
1698 invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
1699
1700 move-result-object v2
1701
1702 invoke-virtual {v2, v14}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
1703
1704 move-result-object v2
1705
1706 invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
1707
1708 move-result-object v16
1709
1710 const-string/jumbo v2, "SQLiteQueryPlan"
1711
1712 move-object/from16 v0, v16
1713
1714 invoke-static {v2, v0}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
1715 :try_end_2
1716 .catch Ljava/lang/RuntimeException; {:try_start_2 .. :try_end_2} :catch_1
1717 .catchall {:try_start_2 .. :try_end_2} :catchall_1
1718
1719 if-eqz v23, :cond_5
1720
1721 invoke-virtual/range {v23 .. v23}, Landroid/database/CursorWindow;->close()V
1722
1723 :cond_5
1724 const-wide/16 v2, 0x0
1725
1726 cmp-long v2, v4, v2
1727
1728 if-eqz v2, :cond_6
1729
1730 move-object/from16 v0, p0
1731
1732 iget-wide v2, v0, Landroid/database/sqlite/SQLiteConnection;->mConnectionPtr:J
1733
1734 invoke-static {v2, v3, v4, v5}, Landroid/database/sqlite/SQLiteConnection;->nativeFinalizeStatement(JJ)V
1735
1736 :cond_6
1737 move-object/from16 v22, v23
1738
1739 :cond_7
1740 :goto_1
1741 return-void
1742
1743 :catch_0
1744 move-exception v12
1745
1746 :goto_2
1747 :try_start_3
1748 const-string/jumbo v2, "SQLiteConnection"
1749
1750 new-instance v3, Ljava/lang/StringBuilder;
1751
1752 invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
1753
1754 const-string/jumbo v6, "Failed to explain query plan : "
1755
1756 invoke-virtual {v3, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
1757
1758 move-result-object v3
1759
1760 move-object/from16 v0, p1
1761
1762 invoke-virtual {v3, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
1763
1764 move-result-object v3
1765
1766 const-string/jumbo v6, " - "
1767
1768 invoke-virtual {v3, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
1769
1770 move-result-object v3
1771
1772 invoke-virtual {v12}, Ljava/lang/RuntimeException;->getMessage()Ljava/lang/String;
1773
1774 move-result-object v6
1775
1776 invoke-virtual {v3, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
1777
1778 move-result-object v3
1779
1780 invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
1781
1782 move-result-object v3
1783
1784 invoke-static {v2, v3}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
1785
1786 invoke-virtual {v12}, Ljava/lang/RuntimeException;->printStackTrace()V
1787 :try_end_3
1788 .catchall {:try_start_3 .. :try_end_3} :catchall_0
1789
1790 if-eqz v22, :cond_8
1791
1792 invoke-virtual/range {v22 .. v22}, Landroid/database/CursorWindow;->close()V
1793
1794 :cond_8
1795 const-wide/16 v2, 0x0
1796
1797 cmp-long v2, v4, v2
1798
1799 if-eqz v2, :cond_7
1800
1801 move-object/from16 v0, p0
1802
1803 iget-wide v2, v0, Landroid/database/sqlite/SQLiteConnection;->mConnectionPtr:J
1804
1805 invoke-static {v2, v3, v4, v5}, Landroid/database/sqlite/SQLiteConnection;->nativeFinalizeStatement(JJ)V
1806
1807 goto :goto_1
1808
1809 :catchall_0
1810 move-exception v2
1811
1812 :goto_3
1813 if-eqz v22, :cond_9
1814
1815 invoke-virtual/range {v22 .. v22}, Landroid/database/CursorWindow;->close()V
1816
1817 :cond_9
1818 const-wide/16 v6, 0x0
1819
1820 cmp-long v3, v4, v6
1821
1822 if-eqz v3, :cond_a
1823
1824 move-object/from16 v0, p0
1825
1826 iget-wide v6, v0, Landroid/database/sqlite/SQLiteConnection;->mConnectionPtr:J
1827
1828 invoke-static {v6, v7, v4, v5}, Landroid/database/sqlite/SQLiteConnection;->nativeFinalizeStatement(JJ)V
1829
1830 :cond_a
1831 throw v2
1832
1833 :catchall_1
1834 move-exception v2
1835
1836 move-object/from16 v22, v23
1837
1838 goto :goto_3
1839
1840 :catch_1
1841 move-exception v12
1842
1843 move-object/from16 v22, v23
1844
1845 goto :goto_2
1846.end method
1847
1848.method private recyclePreparedStatement(Landroid/database/sqlite/SQLiteConnection$PreparedStatement;)V
1849 .locals 1
1850
1851 const/4 v0, 0x0
1852
1853 iput-object v0, p1, Landroid/database/sqlite/SQLiteConnection$PreparedStatement;->mSql:Ljava/lang/String;
1854
1855 iget-object v0, p0, Landroid/database/sqlite/SQLiteConnection;->mPreparedStatementPool:Landroid/database/sqlite/SQLiteConnection$PreparedStatement;
1856
1857 iput-object v0, p1, Landroid/database/sqlite/SQLiteConnection$PreparedStatement;->mPoolNext:Landroid/database/sqlite/SQLiteConnection$PreparedStatement;
1858
1859 iput-object p1, p0, Landroid/database/sqlite/SQLiteConnection;->mPreparedStatementPool:Landroid/database/sqlite/SQLiteConnection$PreparedStatement;
1860
1861 return-void
1862.end method
1863
1864.method private releasePreparedStatement(Landroid/database/sqlite/SQLiteConnection$PreparedStatement;)V
1865 .locals 6
1866
1867 const/4 v1, 0x0
1868
1869 iput-boolean v1, p1, Landroid/database/sqlite/SQLiteConnection$PreparedStatement;->mInUse:Z
1870
1871 iget-boolean v1, p1, Landroid/database/sqlite/SQLiteConnection$PreparedStatement;->mInCache:Z
1872
1873 if-eqz v1, :cond_0
1874
1875 :try_start_0
1876 iget-wide v2, p0, Landroid/database/sqlite/SQLiteConnection;->mConnectionPtr:J
1877
1878 iget-wide v4, p1, Landroid/database/sqlite/SQLiteConnection$PreparedStatement;->mStatementPtr:J
1879
1880 invoke-static {v2, v3, v4, v5}, Landroid/database/sqlite/SQLiteConnection;->nativeResetStatementAndClearBindings(JJ)V
1881 :try_end_0
1882 .catch Landroid/database/sqlite/SQLiteException; {:try_start_0 .. :try_end_0} :catch_0
1883
1884 :goto_0
1885 return-void
1886
1887 :catch_0
1888 move-exception v0
1889
1890 iget-object v1, p0, Landroid/database/sqlite/SQLiteConnection;->mPreparedStatementCache:Landroid/database/sqlite/SQLiteConnection$PreparedStatementCache;
1891
1892 iget-object v2, p1, Landroid/database/sqlite/SQLiteConnection$PreparedStatement;->mSql:Ljava/lang/String;
1893
1894 invoke-virtual {v1, v2}, Landroid/database/sqlite/SQLiteConnection$PreparedStatementCache;->remove(Ljava/lang/Object;)Ljava/lang/Object;
1895
1896 goto :goto_0
1897
1898 :cond_0
1899 invoke-direct {p0, p1}, Landroid/database/sqlite/SQLiteConnection;->finalizePreparedStatement(Landroid/database/sqlite/SQLiteConnection$PreparedStatement;)V
1900
1901 goto :goto_0
1902.end method
1903
1904.method private setAutoCheckpointInterval()V
1905 .locals 7
1906
1907 const/4 v6, 0x0
1908
1909 iget-object v4, p0, Landroid/database/sqlite/SQLiteConnection;->mConfiguration:Landroid/database/sqlite/SQLiteDatabaseConfiguration;
1910
1911 invoke-virtual {v4}, Landroid/database/sqlite/SQLiteDatabaseConfiguration;->isInMemoryDb()Z
1912
1913 move-result v4
1914
1915 if-nez v4, :cond_1
1916
1917 iget-boolean v4, p0, Landroid/database/sqlite/SQLiteConnection;->mIsReadOnlyConnection:Z
1918
1919 xor-int/lit8 v4, v4, 0x1
1920
1921 if-eqz v4, :cond_1
1922
1923 invoke-static {}, Landroid/database/sqlite/SQLiteGlobal;->getWALAutoCheckpoint()I
1924
1925 move-result v4
1926
1927 int-to-long v0, v4
1928
1929 iget-object v4, p0, Landroid/database/sqlite/SQLiteConnection;->mConfiguration:Landroid/database/sqlite/SQLiteDatabaseConfiguration;
1930
1931 iget-boolean v4, v4, Landroid/database/sqlite/SQLiteDatabaseConfiguration;->preloadWalDb:Z
1932
1933 if-eqz v4, :cond_2
1934
1935 const-wide/16 v0, 0x3e8
1936
1937 :cond_0
1938 :goto_0
1939 const-string/jumbo v4, "PRAGMA wal_autocheckpoint"
1940
1941 invoke-virtual {p0, v4, v6, v6}, Landroid/database/sqlite/SQLiteConnection;->executeForLong(Ljava/lang/String;[Ljava/lang/Object;Landroid/os/CancellationSignal;)J
1942
1943 move-result-wide v2
1944
1945 cmp-long v4, v2, v0
1946
1947 if-eqz v4, :cond_1
1948
1949 new-instance v4, Ljava/lang/StringBuilder;
1950
1951 invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V
1952
1953 const-string/jumbo v5, "PRAGMA wal_autocheckpoint="
1954
1955 invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
1956
1957 move-result-object v4
1958
1959 invoke-virtual {v4, v0, v1}, Ljava/lang/StringBuilder;->append(J)Ljava/lang/StringBuilder;
1960
1961 move-result-object v4
1962
1963 invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
1964
1965 move-result-object v4
1966
1967 invoke-virtual {p0, v4, v6, v6}, Landroid/database/sqlite/SQLiteConnection;->executeForLong(Ljava/lang/String;[Ljava/lang/Object;Landroid/os/CancellationSignal;)J
1968
1969 :cond_1
1970 return-void
1971
1972 :cond_2
1973 iget-object v4, p0, Landroid/database/sqlite/SQLiteConnection;->mConfiguration:Landroid/database/sqlite/SQLiteDatabaseConfiguration;
1974
1975 iget-boolean v4, v4, Landroid/database/sqlite/SQLiteDatabaseConfiguration;->defaultWAL:Z
1976
1977 if-eqz v4, :cond_0
1978
1979 const-wide/16 v0, 0x100
1980
1981 goto :goto_0
1982.end method
1983
1984.method private setAutoCheckpointInterval(J)V
1985 .locals 7
1986
1987 const/4 v6, 0x0
1988
1989 iget-object v4, p0, Landroid/database/sqlite/SQLiteConnection;->mConfiguration:Landroid/database/sqlite/SQLiteDatabaseConfiguration;
1990
1991 invoke-virtual {v4}, Landroid/database/sqlite/SQLiteDatabaseConfiguration;->isInMemoryDb()Z
1992
1993 move-result v4
1994
1995 if-nez v4, :cond_0
1996
1997 iget-boolean v4, p0, Landroid/database/sqlite/SQLiteConnection;->mIsReadOnlyConnection:Z
1998
1999 xor-int/lit8 v4, v4, 0x1
2000
2001 if-eqz v4, :cond_0
2002
2003 move-wide v0, p1
2004
2005 const-string/jumbo v4, "PRAGMA wal_autocheckpoint"
2006
2007 invoke-virtual {p0, v4, v6, v6}, Landroid/database/sqlite/SQLiteConnection;->executeForLong(Ljava/lang/String;[Ljava/lang/Object;Landroid/os/CancellationSignal;)J
2008
2009 move-result-wide v2
2010
2011 cmp-long v4, v2, p1
2012
2013 if-eqz v4, :cond_0
2014
2015 new-instance v4, Ljava/lang/StringBuilder;
2016
2017 invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V
2018
2019 const-string/jumbo v5, "PRAGMA wal_autocheckpoint="
2020
2021 invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
2022
2023 move-result-object v4
2024
2025 invoke-virtual {v4, p1, p2}, Ljava/lang/StringBuilder;->append(J)Ljava/lang/StringBuilder;
2026
2027 move-result-object v4
2028
2029 invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
2030
2031 move-result-object v4
2032
2033 invoke-virtual {p0, v4, v6, v6}, Landroid/database/sqlite/SQLiteConnection;->executeForLong(Ljava/lang/String;[Ljava/lang/Object;Landroid/os/CancellationSignal;)J
2034
2035 :cond_0
2036 return-void
2037.end method
2038
2039.method private setAutomaticIndexFromConfiguration()V
2040 .locals 7
2041
2042 const/4 v6, 0x0
2043
2044 iget-object v4, p0, Landroid/database/sqlite/SQLiteConnection;->mConfiguration:Landroid/database/sqlite/SQLiteDatabaseConfiguration;
2045
2046 iget-boolean v4, v4, Landroid/database/sqlite/SQLiteDatabaseConfiguration;->automaticIndexEnabled:Z
2047
2048 if-eqz v4, :cond_1
2049
2050 const/4 v4, 0x1
2051
2052 :goto_0
2053 int-to-long v0, v4
2054
2055 const-string/jumbo v4, "PRAGMA automatic_index"
2056
2057 invoke-virtual {p0, v4, v6, v6}, Landroid/database/sqlite/SQLiteConnection;->executeForLong(Ljava/lang/String;[Ljava/lang/Object;Landroid/os/CancellationSignal;)J
2058
2059 move-result-wide v2
2060
2061 cmp-long v4, v2, v0
2062
2063 if-eqz v4, :cond_0
2064
2065 new-instance v4, Ljava/lang/StringBuilder;
2066
2067 invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V
2068
2069 const-string/jumbo v5, "PRAGMA automatic_index="
2070
2071 invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
2072
2073 move-result-object v4
2074
2075 invoke-virtual {v4, v0, v1}, Ljava/lang/StringBuilder;->append(J)Ljava/lang/StringBuilder;
2076
2077 move-result-object v4
2078
2079 invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
2080
2081 move-result-object v4
2082
2083 invoke-virtual {p0, v4, v6, v6}, Landroid/database/sqlite/SQLiteConnection;->execute(Ljava/lang/String;[Ljava/lang/Object;Landroid/os/CancellationSignal;)V
2084
2085 :cond_0
2086 return-void
2087
2088 :cond_1
2089 const/4 v4, 0x0
2090
2091 goto :goto_0
2092.end method
2093
2094.method private setBusyTimeoutFromConfiguration()V
2095 .locals 7
2096
2097 const/4 v6, 0x0
2098
2099 iget-object v4, p0, Landroid/database/sqlite/SQLiteConnection;->mConfiguration:Landroid/database/sqlite/SQLiteDatabaseConfiguration;
2100
2101 iget-wide v0, v4, Landroid/database/sqlite/SQLiteDatabaseConfiguration;->busyTimeout:J
2102
2103 const-string/jumbo v4, "PRAGMA busy_timeout"
2104
2105 invoke-virtual {p0, v4, v6, v6}, Landroid/database/sqlite/SQLiteConnection;->executeForLong(Ljava/lang/String;[Ljava/lang/Object;Landroid/os/CancellationSignal;)J
2106
2107 move-result-wide v2
2108
2109 cmp-long v4, v2, v0
2110
2111 if-eqz v4, :cond_0
2112
2113 new-instance v4, Ljava/lang/StringBuilder;
2114
2115 invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V
2116
2117 const-string/jumbo v5, "PRAGMA busy_timeout="
2118
2119 invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
2120
2121 move-result-object v4
2122
2123 invoke-virtual {v4, v0, v1}, Ljava/lang/StringBuilder;->append(J)Ljava/lang/StringBuilder;
2124
2125 move-result-object v4
2126
2127 invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
2128
2129 move-result-object v4
2130
2131 invoke-virtual {p0, v4, v6, v6}, Landroid/database/sqlite/SQLiteConnection;->executeForLong(Ljava/lang/String;[Ljava/lang/Object;Landroid/os/CancellationSignal;)J
2132
2133 :cond_0
2134 return-void
2135.end method
2136
2137.method private setCacheSizeFromConfiguration()V
2138 .locals 7
2139
2140 const/4 v6, 0x0
2141
2142 iget-object v4, p0, Landroid/database/sqlite/SQLiteConnection;->mConfiguration:Landroid/database/sqlite/SQLiteDatabaseConfiguration;
2143
2144 iget v4, v4, Landroid/database/sqlite/SQLiteDatabaseConfiguration;->cacheSize:I
2145
2146 int-to-long v0, v4
2147
2148 const-string/jumbo v4, "PRAGMA cache_size"
2149
2150 invoke-virtual {p0, v4, v6, v6}, Landroid/database/sqlite/SQLiteConnection;->executeForLong(Ljava/lang/String;[Ljava/lang/Object;Landroid/os/CancellationSignal;)J
2151
2152 move-result-wide v2
2153
2154 cmp-long v4, v2, v0
2155
2156 if-eqz v4, :cond_0
2157
2158 new-instance v4, Ljava/lang/StringBuilder;
2159
2160 invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V
2161
2162 const-string/jumbo v5, "PRAGMA cache_size="
2163
2164 invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
2165
2166 move-result-object v4
2167
2168 invoke-virtual {v4, v0, v1}, Ljava/lang/StringBuilder;->append(J)Ljava/lang/StringBuilder;
2169
2170 move-result-object v4
2171
2172 invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
2173
2174 move-result-object v4
2175
2176 invoke-virtual {p0, v4, v6, v6}, Landroid/database/sqlite/SQLiteConnection;->execute(Ljava/lang/String;[Ljava/lang/Object;Landroid/os/CancellationSignal;)V
2177
2178 :cond_0
2179 return-void
2180.end method
2181
2182.method private setCaseSensitiveLikeFromConfiguration()V
2183 .locals 7
2184
2185 const/4 v6, 0x0
2186
2187 iget-object v4, p0, Landroid/database/sqlite/SQLiteConnection;->mConfiguration:Landroid/database/sqlite/SQLiteDatabaseConfiguration;
2188
2189 iget-boolean v4, v4, Landroid/database/sqlite/SQLiteDatabaseConfiguration;->caseSensitiveLikeEnabled:Z
2190
2191 if-eqz v4, :cond_1
2192
2193 const/4 v4, 0x1
2194
2195 :goto_0
2196 int-to-long v0, v4
2197
2198 const-string/jumbo v4, "PRAGMA case_sensitive_like"
2199
2200 invoke-virtual {p0, v4, v6, v6}, Landroid/database/sqlite/SQLiteConnection;->executeForLong(Ljava/lang/String;[Ljava/lang/Object;Landroid/os/CancellationSignal;)J
2201
2202 move-result-wide v2
2203
2204 cmp-long v4, v2, v0
2205
2206 if-eqz v4, :cond_0
2207
2208 new-instance v4, Ljava/lang/StringBuilder;
2209
2210 invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V
2211
2212 const-string/jumbo v5, "PRAGMA case_sensitive_like="
2213
2214 invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
2215
2216 move-result-object v4
2217
2218 invoke-virtual {v4, v0, v1}, Ljava/lang/StringBuilder;->append(J)Ljava/lang/StringBuilder;
2219
2220 move-result-object v4
2221
2222 invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
2223
2224 move-result-object v4
2225
2226 invoke-virtual {p0, v4, v6, v6}, Landroid/database/sqlite/SQLiteConnection;->execute(Ljava/lang/String;[Ljava/lang/Object;Landroid/os/CancellationSignal;)V
2227
2228 :cond_0
2229 return-void
2230
2231 :cond_1
2232 const/4 v4, 0x0
2233
2234 goto :goto_0
2235.end method
2236
2237.method private setForeignKeyModeFromConfiguration()V
2238 .locals 7
2239
2240 const/4 v6, 0x0
2241
2242 iget-boolean v4, p0, Landroid/database/sqlite/SQLiteConnection;->mIsReadOnlyConnection:Z
2243
2244 if-nez v4, :cond_0
2245
2246 iget-object v4, p0, Landroid/database/sqlite/SQLiteConnection;->mConfiguration:Landroid/database/sqlite/SQLiteDatabaseConfiguration;
2247
2248 iget-boolean v4, v4, Landroid/database/sqlite/SQLiteDatabaseConfiguration;->foreignKeyConstraintsEnabled:Z
2249
2250 if-eqz v4, :cond_1
2251
2252 const/4 v4, 0x1
2253
2254 :goto_0
2255 int-to-long v0, v4
2256
2257 const-string/jumbo v4, "PRAGMA foreign_keys"
2258
2259 invoke-virtual {p0, v4, v6, v6}, Landroid/database/sqlite/SQLiteConnection;->executeForLong(Ljava/lang/String;[Ljava/lang/Object;Landroid/os/CancellationSignal;)J
2260
2261 move-result-wide v2
2262
2263 cmp-long v4, v2, v0
2264
2265 if-eqz v4, :cond_0
2266
2267 new-instance v4, Ljava/lang/StringBuilder;
2268
2269 invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V
2270
2271 const-string/jumbo v5, "PRAGMA foreign_keys="
2272
2273 invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
2274
2275 move-result-object v4
2276
2277 invoke-virtual {v4, v0, v1}, Ljava/lang/StringBuilder;->append(J)Ljava/lang/StringBuilder;
2278
2279 move-result-object v4
2280
2281 invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
2282
2283 move-result-object v4
2284
2285 invoke-virtual {p0, v4, v6, v6}, Landroid/database/sqlite/SQLiteConnection;->execute(Ljava/lang/String;[Ljava/lang/Object;Landroid/os/CancellationSignal;)V
2286
2287 :cond_0
2288 return-void
2289
2290 :cond_1
2291 const/4 v4, 0x0
2292
2293 goto :goto_0
2294.end method
2295
2296.method private setJournalMode(Ljava/lang/String;)V
2297 .locals 6
2298
2299 const/4 v4, 0x0
2300
2301 const-string/jumbo v3, "PRAGMA journal_mode"
2302
2303 invoke-virtual {p0, v3, v4, v4}, Landroid/database/sqlite/SQLiteConnection;->executeForString(Ljava/lang/String;[Ljava/lang/Object;Landroid/os/CancellationSignal;)Ljava/lang/String;
2304
2305 move-result-object v2
2306
2307 invoke-virtual {v2, p1}, Ljava/lang/String;->equalsIgnoreCase(Ljava/lang/String;)Z
2308
2309 move-result v3
2310
2311 if-nez v3, :cond_1
2312
2313 :try_start_0
2314 new-instance v3, Ljava/lang/StringBuilder;
2315
2316 invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
2317
2318 const-string/jumbo v4, "PRAGMA journal_mode="
2319
2320 invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
2321
2322 move-result-object v3
2323
2324 invoke-virtual {v3, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
2325
2326 move-result-object v3
2327
2328 invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
2329
2330 move-result-object v3
2331
2332 const/4 v4, 0x0
2333
2334 const/4 v5, 0x0
2335
2336 invoke-virtual {p0, v3, v4, v5}, Landroid/database/sqlite/SQLiteConnection;->executeForString(Ljava/lang/String;[Ljava/lang/Object;Landroid/os/CancellationSignal;)Ljava/lang/String;
2337
2338 move-result-object v1
2339
2340 invoke-virtual {v1, p1}, Ljava/lang/String;->equalsIgnoreCase(Ljava/lang/String;)Z
2341 :try_end_0
2342 .catch Landroid/database/sqlite/SQLiteDatabaseLockedException; {:try_start_0 .. :try_end_0} :catch_0
2343
2344 move-result v3
2345
2346 if-eqz v3, :cond_0
2347
2348 return-void
2349
2350 :catch_0
2351 move-exception v0
2352
2353 :cond_0
2354 const-string/jumbo v3, "SQLiteConnection"
2355
2356 new-instance v4, Ljava/lang/StringBuilder;
2357
2358 invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V
2359
2360 const-string/jumbo v5, "Could not change the database journal mode of \'"
2361
2362 invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
2363
2364 move-result-object v4
2365
2366 iget-object v5, p0, Landroid/database/sqlite/SQLiteConnection;->mConfiguration:Landroid/database/sqlite/SQLiteDatabaseConfiguration;
2367
2368 iget-object v5, v5, Landroid/database/sqlite/SQLiteDatabaseConfiguration;->label:Ljava/lang/String;
2369
2370 invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
2371
2372 move-result-object v4
2373
2374 const-string/jumbo v5, "\' from \'"
2375
2376 invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
2377
2378 move-result-object v4
2379
2380 invoke-virtual {v4, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
2381
2382 move-result-object v4
2383
2384 const-string/jumbo v5, "\' to \'"
2385
2386 invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
2387
2388 move-result-object v4
2389
2390 invoke-virtual {v4, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
2391
2392 move-result-object v4
2393
2394 const-string/jumbo v5, "\' because the database is locked. This usually means that "
2395
2396 invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
2397
2398 move-result-object v4
2399
2400 const-string/jumbo v5, "there are other open connections to the database which prevents "
2401
2402 invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
2403
2404 move-result-object v4
2405
2406 const-string/jumbo v5, "the database from enabling or disabling write-ahead logging mode. "
2407
2408 invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
2409
2410 move-result-object v4
2411
2412 const-string/jumbo v5, "Proceeding without changing the journal mode."
2413
2414 invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
2415
2416 move-result-object v4
2417
2418 invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
2419
2420 move-result-object v4
2421
2422 invoke-static {v3, v4}, Landroid/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)I
2423
2424 :cond_1
2425 return-void
2426.end method
2427
2428.method private setJournalSizeLimit()V
2429 .locals 7
2430
2431 const/4 v6, 0x0
2432
2433 iget-object v4, p0, Landroid/database/sqlite/SQLiteConnection;->mConfiguration:Landroid/database/sqlite/SQLiteDatabaseConfiguration;
2434
2435 invoke-virtual {v4}, Landroid/database/sqlite/SQLiteDatabaseConfiguration;->isInMemoryDb()Z
2436
2437 move-result v4
2438
2439 if-nez v4, :cond_1
2440
2441 iget-boolean v4, p0, Landroid/database/sqlite/SQLiteConnection;->mIsReadOnlyConnection:Z
2442
2443 xor-int/lit8 v4, v4, 0x1
2444
2445 if-eqz v4, :cond_1
2446
2447 invoke-static {}, Landroid/database/sqlite/SQLiteGlobal;->getJournalSizeLimit()I
2448
2449 move-result v4
2450
2451 int-to-long v0, v4
2452
2453 iget-object v4, p0, Landroid/database/sqlite/SQLiteConnection;->mConfiguration:Landroid/database/sqlite/SQLiteDatabaseConfiguration;
2454
2455 iget-boolean v4, v4, Landroid/database/sqlite/SQLiteDatabaseConfiguration;->preloadWalDb:Z
2456
2457 if-eqz v4, :cond_2
2458
2459 const-wide/32 v0, 0x800000
2460
2461 :cond_0
2462 :goto_0
2463 const-string/jumbo v4, "PRAGMA journal_size_limit"
2464
2465 invoke-virtual {p0, v4, v6, v6}, Landroid/database/sqlite/SQLiteConnection;->executeForLong(Ljava/lang/String;[Ljava/lang/Object;Landroid/os/CancellationSignal;)J
2466
2467 move-result-wide v2
2468
2469 cmp-long v4, v2, v0
2470
2471 if-eqz v4, :cond_1
2472
2473 new-instance v4, Ljava/lang/StringBuilder;
2474
2475 invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V
2476
2477 const-string/jumbo v5, "PRAGMA journal_size_limit="
2478
2479 invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
2480
2481 move-result-object v4
2482
2483 invoke-virtual {v4, v0, v1}, Ljava/lang/StringBuilder;->append(J)Ljava/lang/StringBuilder;
2484
2485 move-result-object v4
2486
2487 invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
2488
2489 move-result-object v4
2490
2491 invoke-virtual {p0, v4, v6, v6}, Landroid/database/sqlite/SQLiteConnection;->executeForLong(Ljava/lang/String;[Ljava/lang/Object;Landroid/os/CancellationSignal;)J
2492
2493 :cond_1
2494 return-void
2495
2496 :cond_2
2497 iget-object v4, p0, Landroid/database/sqlite/SQLiteConnection;->mConfiguration:Landroid/database/sqlite/SQLiteDatabaseConfiguration;
2498
2499 iget-boolean v4, v4, Landroid/database/sqlite/SQLiteDatabaseConfiguration;->defaultWAL:Z
2500
2501 if-eqz v4, :cond_0
2502
2503 const-wide/32 v0, 0x100000
2504
2505 goto :goto_0
2506.end method
2507
2508.method private setJournalSizeLimit(J)V
2509 .locals 7
2510
2511 const/4 v6, 0x0
2512
2513 iget-object v4, p0, Landroid/database/sqlite/SQLiteConnection;->mConfiguration:Landroid/database/sqlite/SQLiteDatabaseConfiguration;
2514
2515 invoke-virtual {v4}, Landroid/database/sqlite/SQLiteDatabaseConfiguration;->isInMemoryDb()Z
2516
2517 move-result v4
2518
2519 if-nez v4, :cond_0
2520
2521 iget-boolean v4, p0, Landroid/database/sqlite/SQLiteConnection;->mIsReadOnlyConnection:Z
2522
2523 xor-int/lit8 v4, v4, 0x1
2524
2525 if-eqz v4, :cond_0
2526
2527 move-wide v0, p1
2528
2529 const-string/jumbo v4, "PRAGMA journal_size_limit"
2530
2531 invoke-virtual {p0, v4, v6, v6}, Landroid/database/sqlite/SQLiteConnection;->executeForLong(Ljava/lang/String;[Ljava/lang/Object;Landroid/os/CancellationSignal;)J
2532
2533 move-result-wide v2
2534
2535 cmp-long v4, v2, p1
2536
2537 if-eqz v4, :cond_0
2538
2539 new-instance v4, Ljava/lang/StringBuilder;
2540
2541 invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V
2542
2543 const-string/jumbo v5, "PRAGMA journal_size_limit="
2544
2545 invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
2546
2547 move-result-object v4
2548
2549 invoke-virtual {v4, p1, p2}, Ljava/lang/StringBuilder;->append(J)Ljava/lang/StringBuilder;
2550
2551 move-result-object v4
2552
2553 invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
2554
2555 move-result-object v4
2556
2557 invoke-virtual {p0, v4, v6, v6}, Landroid/database/sqlite/SQLiteConnection;->executeForLong(Ljava/lang/String;[Ljava/lang/Object;Landroid/os/CancellationSignal;)J
2558
2559 :cond_0
2560 return-void
2561.end method
2562
2563.method private setLocaleFromConfiguration()V
2564 .locals 9
2565
2566 iget-object v5, p0, Landroid/database/sqlite/SQLiteConnection;->mConfiguration:Landroid/database/sqlite/SQLiteDatabaseConfiguration;
2567
2568 iget v5, v5, Landroid/database/sqlite/SQLiteDatabaseConfiguration;->openFlags:I
2569
2570 and-int/lit8 v5, v5, 0x10
2571
2572 if-eqz v5, :cond_0
2573
2574 return-void
2575
2576 :cond_0
2577 iget-object v5, p0, Landroid/database/sqlite/SQLiteConnection;->mConfiguration:Landroid/database/sqlite/SQLiteDatabaseConfiguration;
2578
2579 iget-object v5, v5, Landroid/database/sqlite/SQLiteDatabaseConfiguration;->locale:Ljava/util/Locale;
2580
2581 invoke-virtual {v5}, Ljava/util/Locale;->toString()Ljava/lang/String;
2582
2583 move-result-object v2
2584
2585 iget-wide v6, p0, Landroid/database/sqlite/SQLiteConnection;->mConnectionPtr:J
2586
2587 invoke-static {v6, v7, v2}, Landroid/database/sqlite/SQLiteConnection;->nativeRegisterLocalizedCollators(JLjava/lang/String;)V
2588
2589 iget-boolean v5, p0, Landroid/database/sqlite/SQLiteConnection;->mIsReadOnlyConnection:Z
2590
2591 if-nez v5, :cond_1
2592
2593 iget-boolean v5, p0, Landroid/database/sqlite/SQLiteConnection;->mIsPrimaryConnection:Z
2594
2595 xor-int/lit8 v5, v5, 0x1
2596
2597 if-eqz v5, :cond_2
2598
2599 :cond_1
2600 return-void
2601
2602 :cond_2
2603 :try_start_0
2604 const-string/jumbo v5, "CREATE TABLE IF NOT EXISTS android_metadata (locale TEXT)"
2605
2606 const/4 v6, 0x0
2607
2608 const/4 v7, 0x0
2609
2610 invoke-virtual {p0, v5, v6, v7}, Landroid/database/sqlite/SQLiteConnection;->execute(Ljava/lang/String;[Ljava/lang/Object;Landroid/os/CancellationSignal;)V
2611
2612 const-string/jumbo v5, "SELECT locale FROM android_metadata UNION SELECT NULL ORDER BY locale DESC LIMIT 1"
2613
2614 const/4 v6, 0x0
2615
2616 const/4 v7, 0x0
2617
2618 invoke-virtual {p0, v5, v6, v7}, Landroid/database/sqlite/SQLiteConnection;->executeForString(Ljava/lang/String;[Ljava/lang/Object;Landroid/os/CancellationSignal;)Ljava/lang/String;
2619
2620 move-result-object v3
2621
2622 if-eqz v3, :cond_3
2623
2624 invoke-virtual {v3, v2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
2625
2626 move-result v5
2627
2628 if-eqz v5, :cond_3
2629
2630 return-void
2631
2632 :cond_3
2633 const-string/jumbo v5, "BEGIN"
2634
2635 const/4 v6, 0x0
2636
2637 const/4 v7, 0x0
2638
2639 invoke-virtual {p0, v5, v6, v7}, Landroid/database/sqlite/SQLiteConnection;->execute(Ljava/lang/String;[Ljava/lang/Object;Landroid/os/CancellationSignal;)V
2640 :try_end_0
2641 .catch Landroid/database/sqlite/SQLiteDatabaseCorruptException; {:try_start_0 .. :try_end_0} :catch_0
2642 .catch Landroid/database/sqlite/SQLiteFullException; {:try_start_0 .. :try_end_0} :catch_0
2643 .catch Ljava/lang/RuntimeException; {:try_start_0 .. :try_end_0} :catch_1
2644
2645 const/4 v4, 0x0
2646
2647 :try_start_1
2648 const-string/jumbo v5, "DELETE FROM android_metadata"
2649
2650 const/4 v6, 0x0
2651
2652 const/4 v7, 0x0
2653
2654 invoke-virtual {p0, v5, v6, v7}, Landroid/database/sqlite/SQLiteConnection;->execute(Ljava/lang/String;[Ljava/lang/Object;Landroid/os/CancellationSignal;)V
2655
2656 const-string/jumbo v5, "INSERT INTO android_metadata (locale) VALUES(?)"
2657
2658 const/4 v6, 0x1
2659
2660 new-array v6, v6, [Ljava/lang/Object;
2661
2662 const/4 v7, 0x0
2663
2664 aput-object v2, v6, v7
2665
2666 const/4 v7, 0x0
2667
2668 invoke-virtual {p0, v5, v6, v7}, Landroid/database/sqlite/SQLiteConnection;->execute(Ljava/lang/String;[Ljava/lang/Object;Landroid/os/CancellationSignal;)V
2669
2670 const-string/jumbo v5, "REINDEX LOCALIZED"
2671
2672 const/4 v6, 0x0
2673
2674 const/4 v7, 0x0
2675
2676 invoke-virtual {p0, v5, v6, v7}, Landroid/database/sqlite/SQLiteConnection;->execute(Ljava/lang/String;[Ljava/lang/Object;Landroid/os/CancellationSignal;)V
2677 :try_end_1
2678 .catchall {:try_start_1 .. :try_end_1} :catchall_0
2679
2680 const/4 v4, 0x1
2681
2682 if-eqz v4, :cond_4
2683
2684 :try_start_2
2685 const-string/jumbo v5, "COMMIT"
2686
2687 :goto_0
2688 const/4 v6, 0x0
2689
2690 const/4 v7, 0x0
2691
2692 invoke-virtual {p0, v5, v6, v7}, Landroid/database/sqlite/SQLiteConnection;->execute(Ljava/lang/String;[Ljava/lang/Object;Landroid/os/CancellationSignal;)V
2693
2694 return-void
2695
2696 :cond_4
2697 const-string/jumbo v5, "ROLLBACK"
2698
2699 goto :goto_0
2700
2701 :catchall_0
2702 move-exception v5
2703
2704 if-eqz v4, :cond_5
2705
2706 const-string/jumbo v6, "COMMIT"
2707
2708 :goto_1
2709 const/4 v7, 0x0
2710
2711 const/4 v8, 0x0
2712
2713 invoke-virtual {p0, v6, v7, v8}, Landroid/database/sqlite/SQLiteConnection;->execute(Ljava/lang/String;[Ljava/lang/Object;Landroid/os/CancellationSignal;)V
2714
2715 throw v5
2716 :try_end_2
2717 .catch Landroid/database/sqlite/SQLiteDatabaseCorruptException; {:try_start_2 .. :try_end_2} :catch_0
2718 .catch Landroid/database/sqlite/SQLiteFullException; {:try_start_2 .. :try_end_2} :catch_0
2719 .catch Ljava/lang/RuntimeException; {:try_start_2 .. :try_end_2} :catch_1
2720
2721 :catch_0
2722 move-exception v0
2723
2724 const-string/jumbo v5, "SQLiteConnection"
2725
2726 new-instance v6, Ljava/lang/StringBuilder;
2727
2728 invoke-direct {v6}, Ljava/lang/StringBuilder;-><init>()V
2729
2730 const-string/jumbo v7, "Failed to change locale for db\'"
2731
2732 invoke-virtual {v6, v7}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
2733
2734 move-result-object v6
2735
2736 iget-object v7, p0, Landroid/database/sqlite/SQLiteConnection;->mConfiguration:Landroid/database/sqlite/SQLiteDatabaseConfiguration;
2737
2738 iget-object v7, v7, Landroid/database/sqlite/SQLiteDatabaseConfiguration;->label:Ljava/lang/String;
2739
2740 invoke-virtual {v6, v7}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
2741
2742 move-result-object v6
2743
2744 const-string/jumbo v7, "\' to \'"
2745
2746 invoke-virtual {v6, v7}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
2747
2748 move-result-object v6
2749
2750 invoke-virtual {v6, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
2751
2752 move-result-object v6
2753
2754 const-string/jumbo v7, "\'."
2755
2756 invoke-virtual {v6, v7}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
2757
2758 move-result-object v6
2759
2760 invoke-virtual {v6}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
2761
2762 move-result-object v6
2763
2764 invoke-static {v5, v6}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
2765
2766 throw v0
2767
2768 :cond_5
2769 :try_start_3
2770 const-string/jumbo v6, "ROLLBACK"
2771 :try_end_3
2772 .catch Landroid/database/sqlite/SQLiteDatabaseCorruptException; {:try_start_3 .. :try_end_3} :catch_0
2773 .catch Landroid/database/sqlite/SQLiteFullException; {:try_start_3 .. :try_end_3} :catch_0
2774 .catch Ljava/lang/RuntimeException; {:try_start_3 .. :try_end_3} :catch_1
2775
2776 goto :goto_1
2777
2778 :catch_1
2779 move-exception v1
2780
2781 new-instance v5, Landroid/database/sqlite/SQLiteException;
2782
2783 new-instance v6, Ljava/lang/StringBuilder;
2784
2785 invoke-direct {v6}, Ljava/lang/StringBuilder;-><init>()V
2786
2787 const-string/jumbo v7, "Failed to change locale for db \'"
2788
2789 invoke-virtual {v6, v7}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
2790
2791 move-result-object v6
2792
2793 iget-object v7, p0, Landroid/database/sqlite/SQLiteConnection;->mConfiguration:Landroid/database/sqlite/SQLiteDatabaseConfiguration;
2794
2795 iget-object v7, v7, Landroid/database/sqlite/SQLiteDatabaseConfiguration;->label:Ljava/lang/String;
2796
2797 invoke-virtual {v6, v7}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
2798
2799 move-result-object v6
2800
2801 const-string/jumbo v7, "\' to \'"
2802
2803 invoke-virtual {v6, v7}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
2804
2805 move-result-object v6
2806
2807 invoke-virtual {v6, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
2808
2809 move-result-object v6
2810
2811 const-string/jumbo v7, "\'."
2812
2813 invoke-virtual {v6, v7}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
2814
2815 move-result-object v6
2816
2817 invoke-virtual {v6}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
2818
2819 move-result-object v6
2820
2821 invoke-direct {v5, v6, v1}, Landroid/database/sqlite/SQLiteException;-><init>(Ljava/lang/String;Ljava/lang/Throwable;)V
2822
2823 throw v5
2824.end method
2825
2826.method private setPageSize()V
2827 .locals 7
2828
2829 const/4 v6, 0x0
2830
2831 iget-object v4, p0, Landroid/database/sqlite/SQLiteConnection;->mConfiguration:Landroid/database/sqlite/SQLiteDatabaseConfiguration;
2832
2833 invoke-virtual {v4}, Landroid/database/sqlite/SQLiteDatabaseConfiguration;->isInMemoryDb()Z
2834
2835 move-result v4
2836
2837 if-nez v4, :cond_0
2838
2839 iget-boolean v4, p0, Landroid/database/sqlite/SQLiteConnection;->mIsReadOnlyConnection:Z
2840
2841 xor-int/lit8 v4, v4, 0x1
2842
2843 if-eqz v4, :cond_0
2844
2845 invoke-static {}, Landroid/database/sqlite/SQLiteGlobal;->getDefaultPageSize()I
2846
2847 move-result v4
2848
2849 int-to-long v0, v4
2850
2851 const-string/jumbo v4, "PRAGMA page_size"
2852
2853 invoke-virtual {p0, v4, v6, v6}, Landroid/database/sqlite/SQLiteConnection;->executeForLong(Ljava/lang/String;[Ljava/lang/Object;Landroid/os/CancellationSignal;)J
2854
2855 move-result-wide v2
2856
2857 cmp-long v4, v2, v0
2858
2859 if-eqz v4, :cond_0
2860
2861 new-instance v4, Ljava/lang/StringBuilder;
2862
2863 invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V
2864
2865 const-string/jumbo v5, "PRAGMA page_size="
2866
2867 invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
2868
2869 move-result-object v4
2870
2871 invoke-virtual {v4, v0, v1}, Ljava/lang/StringBuilder;->append(J)Ljava/lang/StringBuilder;
2872
2873 move-result-object v4
2874
2875 invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
2876
2877 move-result-object v4
2878
2879 invoke-virtual {p0, v4, v6, v6}, Landroid/database/sqlite/SQLiteConnection;->execute(Ljava/lang/String;[Ljava/lang/Object;Landroid/os/CancellationSignal;)V
2880
2881 :cond_0
2882 return-void
2883.end method
2884
2885.method private setSyncMode(Ljava/lang/String;)V
2886 .locals 4
2887
2888 const/4 v3, 0x0
2889
2890 const-string/jumbo v1, "PRAGMA synchronous"
2891
2892 invoke-virtual {p0, v1, v3, v3}, Landroid/database/sqlite/SQLiteConnection;->executeForString(Ljava/lang/String;[Ljava/lang/Object;Landroid/os/CancellationSignal;)Ljava/lang/String;
2893
2894 move-result-object v0
2895
2896 invoke-static {v0}, Landroid/database/sqlite/SQLiteConnection;->canonicalizeSyncMode(Ljava/lang/String;)Ljava/lang/String;
2897
2898 move-result-object v1
2899
2900 invoke-static {p1}, Landroid/database/sqlite/SQLiteConnection;->canonicalizeSyncMode(Ljava/lang/String;)Ljava/lang/String;
2901
2902 move-result-object v2
2903
2904 invoke-virtual {v1, v2}, Ljava/lang/String;->equalsIgnoreCase(Ljava/lang/String;)Z
2905
2906 move-result v1
2907
2908 if-nez v1, :cond_0
2909
2910 new-instance v1, Ljava/lang/StringBuilder;
2911
2912 invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
2913
2914 const-string/jumbo v2, "PRAGMA synchronous="
2915
2916 invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
2917
2918 move-result-object v1
2919
2920 invoke-virtual {v1, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
2921
2922 move-result-object v1
2923
2924 invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
2925
2926 move-result-object v1
2927
2928 invoke-virtual {p0, v1, v3, v3}, Landroid/database/sqlite/SQLiteConnection;->execute(Ljava/lang/String;[Ljava/lang/Object;Landroid/os/CancellationSignal;)V
2929
2930 :cond_0
2931 return-void
2932.end method
2933
2934.method private setWalModeFromConfiguration()V
2935 .locals 3
2936
2937 iget-object v1, p0, Landroid/database/sqlite/SQLiteConnection;->mConfiguration:Landroid/database/sqlite/SQLiteDatabaseConfiguration;
2938
2939 invoke-virtual {v1}, Landroid/database/sqlite/SQLiteDatabaseConfiguration;->isInMemoryDb()Z
2940
2941 move-result v1
2942
2943 if-nez v1, :cond_2
2944
2945 iget-boolean v1, p0, Landroid/database/sqlite/SQLiteConnection;->mIsReadOnlyConnection:Z
2946
2947 xor-int/lit8 v1, v1, 0x1
2948
2949 if-eqz v1, :cond_2
2950
2951 iget-object v1, p0, Landroid/database/sqlite/SQLiteConnection;->mConfiguration:Landroid/database/sqlite/SQLiteDatabaseConfiguration;
2952
2953 iget v1, v1, Landroid/database/sqlite/SQLiteDatabaseConfiguration;->openFlags:I
2954
2955 const/high16 v2, 0x20000000
2956
2957 and-int/2addr v1, v2
2958
2959 if-eqz v1, :cond_3
2960
2961 invoke-static {}, Landroid/database/sqlite/SQLiteGlobal;->getWALSyncMode()Ljava/lang/String;
2962
2963 move-result-object v0
2964
2965 iget-object v1, p0, Landroid/database/sqlite/SQLiteConnection;->mConfiguration:Landroid/database/sqlite/SQLiteDatabaseConfiguration;
2966
2967 iget-boolean v1, v1, Landroid/database/sqlite/SQLiteDatabaseConfiguration;->preloadWalDb:Z
2968
2969 if-nez v1, :cond_0
2970
2971 iget-object v1, p0, Landroid/database/sqlite/SQLiteConnection;->mConfiguration:Landroid/database/sqlite/SQLiteDatabaseConfiguration;
2972
2973 iget-boolean v1, v1, Landroid/database/sqlite/SQLiteDatabaseConfiguration;->defaultWAL:Z
2974
2975 if-eqz v1, :cond_1
2976
2977 :cond_0
2978 iget-object v1, p0, Landroid/database/sqlite/SQLiteConnection;->mConfiguration:Landroid/database/sqlite/SQLiteDatabaseConfiguration;
2979
2980 iget v1, v1, Landroid/database/sqlite/SQLiteDatabaseConfiguration;->openFlags:I
2981
2982 and-int/lit16 v1, v1, 0x200
2983
2984 if-nez v1, :cond_1
2985
2986 const-string/jumbo v0, "NORMAL"
2987
2988 :cond_1
2989 const-string/jumbo v1, "WAL"
2990
2991 invoke-direct {p0, v1}, Landroid/database/sqlite/SQLiteConnection;->setJournalMode(Ljava/lang/String;)V
2992
2993 invoke-direct {p0, v0}, Landroid/database/sqlite/SQLiteConnection;->setSyncMode(Ljava/lang/String;)V
2994
2995 :cond_2
2996 :goto_0
2997 return-void
2998
2999 :cond_3
3000 const-string/jumbo v1, "PERSIST"
3001
3002 invoke-direct {p0, v1}, Landroid/database/sqlite/SQLiteConnection;->setJournalMode(Ljava/lang/String;)V
3003
3004 const-string/jumbo v1, "NORMAL"
3005
3006 invoke-direct {p0, v1}, Landroid/database/sqlite/SQLiteConnection;->setSyncMode(Ljava/lang/String;)V
3007
3008 goto :goto_0
3009.end method
3010
3011.method private throwIfStatementForbidden(Landroid/database/sqlite/SQLiteConnection$PreparedStatement;)V
3012 .locals 2
3013
3014 iget-boolean v0, p0, Landroid/database/sqlite/SQLiteConnection;->mOnlyAllowReadOnlyOperations:Z
3015
3016 if-eqz v0, :cond_0
3017
3018 iget-boolean v0, p1, Landroid/database/sqlite/SQLiteConnection$PreparedStatement;->mReadOnly:Z
3019
3020 xor-int/lit8 v0, v0, 0x1
3021
3022 if-eqz v0, :cond_0
3023
3024 new-instance v0, Landroid/database/sqlite/SQLiteException;
3025
3026 const-string/jumbo v1, "Cannot execute this statement because it might modify the database but the connection is read-only."
3027
3028 invoke-direct {v0, v1}, Landroid/database/sqlite/SQLiteException;-><init>(Ljava/lang/String;)V
3029
3030 throw v0
3031
3032 :cond_0
3033 return-void
3034.end method
3035
3036.method private static trimSqlForDisplay(Ljava/lang/String;)Ljava/lang/String;
3037 .locals 2
3038
3039 const-string/jumbo v0, "[\\s]*\\n+[\\s]*"
3040
3041 const-string/jumbo v1, " "
3042
3043 invoke-virtual {p0, v0, v1}, Ljava/lang/String;->replaceAll(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
3044
3045 move-result-object v0
3046
3047 return-object v0
3048.end method
3049
3050
3051# virtual methods
3052.method public changePassword([B)[B
3053 .locals 2
3054
3055 iget-wide v0, p0, Landroid/database/sqlite/SQLiteConnection;->mConnectionPtr:J
3056
3057 invoke-static {v0, v1, p1}, Landroid/database/sqlite/SQLiteConnection;->nativeChangePassword(J[B)[B
3058
3059 move-result-object v0
3060
3061 return-object v0
3062.end method
3063
3064.method close()V
3065 .locals 1
3066
3067 const/4 v0, 0x0
3068
3069 invoke-direct {p0, v0}, Landroid/database/sqlite/SQLiteConnection;->dispose(Z)V
3070
3071 return-void
3072.end method
3073
3074.method collectDbStats(Ljava/util/ArrayList;)V
3075 .locals 26
3076 .annotation system Ldalvik/annotation/Signature;
3077 value = {
3078 "(",
3079 "Ljava/util/ArrayList",
3080 "<",
3081 "Landroid/database/sqlite/SQLiteDebug$DbStats;",
3082 ">;)V"
3083 }
3084 .end annotation
3085
3086 move-object/from16 v0, p0
3087
3088 iget-wide v8, v0, Landroid/database/sqlite/SQLiteConnection;->mConnectionPtr:J
3089
3090 invoke-static {v8, v9}, Landroid/database/sqlite/SQLiteConnection;->nativeGetDbLookaside(J)I
3091
3092 move-result v3
3093
3094 const-wide/16 v4, 0x0
3095
3096 const-wide/16 v6, 0x0
3097
3098 :try_start_0
3099 const-string/jumbo v2, "PRAGMA page_count;"
3100
3101 const/4 v8, 0x0
3102
3103 const/4 v9, 0x0
3104
3105 move-object/from16 v0, p0
3106
3107 invoke-virtual {v0, v2, v8, v9}, Landroid/database/sqlite/SQLiteConnection;->executeForLong(Ljava/lang/String;[Ljava/lang/Object;Landroid/os/CancellationSignal;)J
3108
3109 move-result-wide v4
3110
3111 const-string/jumbo v2, "PRAGMA page_size;"
3112
3113 const/4 v8, 0x0
3114
3115 const/4 v9, 0x0
3116
3117 move-object/from16 v0, p0
3118
3119 invoke-virtual {v0, v2, v8, v9}, Landroid/database/sqlite/SQLiteConnection;->executeForLong(Ljava/lang/String;[Ljava/lang/Object;Landroid/os/CancellationSignal;)J
3120 :try_end_0
3121 .catch Landroid/database/sqlite/SQLiteException; {:try_start_0 .. :try_end_0} :catch_2
3122
3123 move-result-wide v6
3124
3125 :goto_0
3126 move-object/from16 v2, p0
3127
3128 invoke-direct/range {v2 .. v7}, Landroid/database/sqlite/SQLiteConnection;->getMainDbStatsUnsafe(IJJ)Landroid/database/sqlite/SQLiteDebug$DbStats;
3129
3130 move-result-object v2
3131
3132 move-object/from16 v0, p1
3133
3134 invoke-virtual {v0, v2}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z
3135
3136 new-instance v11, Landroid/database/CursorWindow;
3137
3138 const-string/jumbo v2, "collectDbStats"
3139
3140 invoke-direct {v11, v2}, Landroid/database/CursorWindow;-><init>(Ljava/lang/String;)V
3141
3142 :try_start_1
3143 const-string/jumbo v9, "PRAGMA database_list;"
3144
3145 const/4 v10, 0x0
3146
3147 const/4 v12, 0x0
3148
3149 const/4 v13, 0x0
3150
3151 const/4 v14, 0x0
3152
3153 const/4 v15, 0x0
3154
3155 move-object/from16 v8, p0
3156
3157 invoke-virtual/range {v8 .. v15}, Landroid/database/sqlite/SQLiteConnection;->executeForCursorWindow(Ljava/lang/String;[Ljava/lang/Object;Landroid/database/CursorWindow;IIZLandroid/os/CancellationSignal;)I
3158
3159 const/16 v23, 0x1
3160
3161 :goto_1
3162 invoke-virtual {v11}, Landroid/database/CursorWindow;->getNumRows()I
3163
3164 move-result v2
3165
3166 move/from16 v0, v23
3167
3168 if-ge v0, v2, :cond_1
3169
3170 const/4 v2, 0x1
3171
3172 move/from16 v0, v23
3173
3174 invoke-virtual {v11, v0, v2}, Landroid/database/CursorWindow;->getString(II)Ljava/lang/String;
3175
3176 move-result-object v24
3177
3178 const/4 v2, 0x2
3179
3180 move/from16 v0, v23
3181
3182 invoke-virtual {v11, v0, v2}, Landroid/database/CursorWindow;->getString(II)Ljava/lang/String;
3183 :try_end_1
3184 .catch Landroid/database/sqlite/SQLiteException; {:try_start_1 .. :try_end_1} :catch_0
3185 .catchall {:try_start_1 .. :try_end_1} :catchall_0
3186
3187 move-result-object v25
3188
3189 const-wide/16 v4, 0x0
3190
3191 const-wide/16 v6, 0x0
3192
3193 :try_start_2
3194 new-instance v2, Ljava/lang/StringBuilder;
3195
3196 invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
3197
3198 const-string/jumbo v8, "PRAGMA "
3199
3200 invoke-virtual {v2, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
3201
3202 move-result-object v2
3203
3204 move-object/from16 v0, v24
3205
3206 invoke-virtual {v2, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
3207
3208 move-result-object v2
3209
3210 const-string/jumbo v8, ".page_count;"
3211
3212 invoke-virtual {v2, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
3213
3214 move-result-object v2
3215
3216 invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
3217
3218 move-result-object v2
3219
3220 const/4 v8, 0x0
3221
3222 const/4 v9, 0x0
3223
3224 move-object/from16 v0, p0
3225
3226 invoke-virtual {v0, v2, v8, v9}, Landroid/database/sqlite/SQLiteConnection;->executeForLong(Ljava/lang/String;[Ljava/lang/Object;Landroid/os/CancellationSignal;)J
3227
3228 move-result-wide v4
3229
3230 new-instance v2, Ljava/lang/StringBuilder;
3231
3232 invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
3233
3234 const-string/jumbo v8, "PRAGMA "
3235
3236 invoke-virtual {v2, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
3237
3238 move-result-object v2
3239
3240 move-object/from16 v0, v24
3241
3242 invoke-virtual {v2, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
3243
3244 move-result-object v2
3245
3246 const-string/jumbo v8, ".page_size;"
3247
3248 invoke-virtual {v2, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
3249
3250 move-result-object v2
3251
3252 invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
3253
3254 move-result-object v2
3255
3256 const/4 v8, 0x0
3257
3258 const/4 v9, 0x0
3259
3260 move-object/from16 v0, p0
3261
3262 invoke-virtual {v0, v2, v8, v9}, Landroid/database/sqlite/SQLiteConnection;->executeForLong(Ljava/lang/String;[Ljava/lang/Object;Landroid/os/CancellationSignal;)J
3263 :try_end_2
3264 .catch Landroid/database/sqlite/SQLiteException; {:try_start_2 .. :try_end_2} :catch_1
3265 .catchall {:try_start_2 .. :try_end_2} :catchall_0
3266
3267 move-result-wide v6
3268
3269 :goto_2
3270 :try_start_3
3271 new-instance v2, Ljava/lang/StringBuilder;
3272
3273 invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
3274
3275 const-string/jumbo v8, " (attached) "
3276
3277 invoke-virtual {v2, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
3278
3279 move-result-object v2
3280
3281 move-object/from16 v0, v24
3282
3283 invoke-virtual {v2, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
3284
3285 move-result-object v2
3286
3287 invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
3288
3289 move-result-object v13
3290
3291 invoke-virtual/range {v25 .. v25}, Ljava/lang/String;->isEmpty()Z
3292
3293 move-result v2
3294
3295 if-nez v2, :cond_0
3296
3297 new-instance v2, Ljava/lang/StringBuilder;
3298
3299 invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
3300
3301 invoke-virtual {v2, v13}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
3302
3303 move-result-object v2
3304
3305 const-string/jumbo v8, ": "
3306
3307 invoke-virtual {v2, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
3308
3309 move-result-object v2
3310
3311 move-object/from16 v0, v25
3312
3313 invoke-virtual {v2, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
3314
3315 move-result-object v2
3316
3317 invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
3318
3319 move-result-object v13
3320
3321 :cond_0
3322 new-instance v12, Landroid/database/sqlite/SQLiteDebug$DbStats;
3323
3324 const/16 v18, 0x0
3325
3326 const/16 v19, 0x0
3327
3328 const/16 v20, 0x0
3329
3330 const/16 v21, 0x0
3331
3332 move-wide v14, v4
3333
3334 move-wide/from16 v16, v6
3335
3336 invoke-direct/range {v12 .. v21}, Landroid/database/sqlite/SQLiteDebug$DbStats;-><init>(Ljava/lang/String;JJIIII)V
3337
3338 move-object/from16 v0, p1
3339
3340 invoke-virtual {v0, v12}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z
3341 :try_end_3
3342 .catch Landroid/database/sqlite/SQLiteException; {:try_start_3 .. :try_end_3} :catch_0
3343 .catchall {:try_start_3 .. :try_end_3} :catchall_0
3344
3345 add-int/lit8 v23, v23, 0x1
3346
3347 goto/16 :goto_1
3348
3349 :cond_1
3350 invoke-virtual {v11}, Landroid/database/CursorWindow;->close()V
3351
3352 :goto_3
3353 return-void
3354
3355 :catch_0
3356 move-exception v22
3357
3358 invoke-virtual {v11}, Landroid/database/CursorWindow;->close()V
3359
3360 goto :goto_3
3361
3362 :catchall_0
3363 move-exception v2
3364
3365 invoke-virtual {v11}, Landroid/database/CursorWindow;->close()V
3366
3367 throw v2
3368
3369 :catch_1
3370 move-exception v22
3371
3372 goto :goto_2
3373
3374 :catch_2
3375 move-exception v22
3376
3377 goto/16 :goto_0
3378.end method
3379
3380.method collectDbStatsUnsafe(Ljava/util/ArrayList;)V
3381 .locals 6
3382 .annotation system Ldalvik/annotation/Signature;
3383 value = {
3384 "(",
3385 "Ljava/util/ArrayList",
3386 "<",
3387 "Landroid/database/sqlite/SQLiteDebug$DbStats;",
3388 ">;)V"
3389 }
3390 .end annotation
3391
3392 const-wide/16 v2, 0x0
3393
3394 const/4 v1, 0x0
3395
3396 move-object v0, p0
3397
3398 move-wide v4, v2
3399
3400 invoke-direct/range {v0 .. v5}, Landroid/database/sqlite/SQLiteConnection;->getMainDbStatsUnsafe(IJJ)Landroid/database/sqlite/SQLiteDebug$DbStats;
3401
3402 move-result-object v0
3403
3404 invoke-virtual {p1, v0}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z
3405
3406 return-void
3407.end method
3408
3409.method describeCurrentOperationUnsafe()Ljava/lang/String;
3410 .locals 1
3411
3412 iget-object v0, p0, Landroid/database/sqlite/SQLiteConnection;->mRecentOperations:Landroid/database/sqlite/SQLiteConnection$OperationLog;
3413
3414 invoke-virtual {v0}, Landroid/database/sqlite/SQLiteConnection$OperationLog;->describeCurrentOperation()Ljava/lang/String;
3415
3416 move-result-object v0
3417
3418 return-object v0
3419.end method
3420
3421.method public dump(Landroid/util/Printer;Z)V
3422 .locals 0
3423
3424 invoke-virtual {p0, p1, p2}, Landroid/database/sqlite/SQLiteConnection;->dumpUnsafe(Landroid/util/Printer;Z)V
3425
3426 return-void
3427.end method
3428
3429.method dumpUnsafe(Landroid/util/Printer;Z)V
3430 .locals 4
3431
3432 new-instance v0, Ljava/lang/StringBuilder;
3433
3434 invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
3435
3436 const-string/jumbo v1, "Connection #"
3437
3438 invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
3439
3440 move-result-object v0
3441
3442 iget v1, p0, Landroid/database/sqlite/SQLiteConnection;->mConnectionId:I
3443
3444 invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
3445
3446 move-result-object v0
3447
3448 const-string/jumbo v1, ":"
3449
3450 invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
3451
3452 move-result-object v0
3453
3454 invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
3455
3456 move-result-object v0
3457
3458 invoke-interface {p1, v0}, Landroid/util/Printer;->println(Ljava/lang/String;)V
3459
3460 if-eqz p2, :cond_0
3461
3462 new-instance v0, Ljava/lang/StringBuilder;
3463
3464 invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
3465
3466 const-string/jumbo v1, " connectionPtr: 0x"
3467
3468 invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
3469
3470 move-result-object v0
3471
3472 iget-wide v2, p0, Landroid/database/sqlite/SQLiteConnection;->mConnectionPtr:J
3473
3474 invoke-static {v2, v3}, Ljava/lang/Long;->toHexString(J)Ljava/lang/String;
3475
3476 move-result-object v1
3477
3478 invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
3479
3480 move-result-object v0
3481
3482 invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
3483
3484 move-result-object v0
3485
3486 invoke-interface {p1, v0}, Landroid/util/Printer;->println(Ljava/lang/String;)V
3487
3488 :cond_0
3489 new-instance v0, Ljava/lang/StringBuilder;
3490
3491 invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
3492
3493 const-string/jumbo v1, " isPrimaryConnection: "
3494
3495 invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
3496
3497 move-result-object v0
3498
3499 iget-boolean v1, p0, Landroid/database/sqlite/SQLiteConnection;->mIsPrimaryConnection:Z
3500
3501 invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Z)Ljava/lang/StringBuilder;
3502
3503 move-result-object v0
3504
3505 invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
3506
3507 move-result-object v0
3508
3509 invoke-interface {p1, v0}, Landroid/util/Printer;->println(Ljava/lang/String;)V
3510
3511 new-instance v0, Ljava/lang/StringBuilder;
3512
3513 invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
3514
3515 const-string/jumbo v1, " onlyAllowReadOnlyOperations: "
3516
3517 invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
3518
3519 move-result-object v0
3520
3521 iget-boolean v1, p0, Landroid/database/sqlite/SQLiteConnection;->mOnlyAllowReadOnlyOperations:Z
3522
3523 invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Z)Ljava/lang/StringBuilder;
3524
3525 move-result-object v0
3526
3527 invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
3528
3529 move-result-object v0
3530
3531 invoke-interface {p1, v0}, Landroid/util/Printer;->println(Ljava/lang/String;)V
3532
3533 iget-object v0, p0, Landroid/database/sqlite/SQLiteConnection;->mRecentOperations:Landroid/database/sqlite/SQLiteConnection$OperationLog;
3534
3535 invoke-virtual {v0, p1, p2}, Landroid/database/sqlite/SQLiteConnection$OperationLog;->dump(Landroid/util/Printer;Z)V
3536
3537 if-eqz p2, :cond_1
3538
3539 iget-object v0, p0, Landroid/database/sqlite/SQLiteConnection;->mPreparedStatementCache:Landroid/database/sqlite/SQLiteConnection$PreparedStatementCache;
3540
3541 invoke-virtual {v0, p1}, Landroid/database/sqlite/SQLiteConnection$PreparedStatementCache;->dump(Landroid/util/Printer;)V
3542
3543 :cond_1
3544 return-void
3545.end method
3546
3547.method public execute(Ljava/lang/String;[Ljava/lang/Object;Landroid/os/CancellationSignal;)V
3548 .locals 8
3549
3550 if-nez p1, :cond_0
3551
3552 new-instance v3, Ljava/lang/IllegalArgumentException;
3553
3554 const-string/jumbo v4, "sql must not be null."
3555
3556 invoke-direct {v3, v4}, Ljava/lang/IllegalArgumentException;-><init>(Ljava/lang/String;)V
3557
3558 throw v3
3559
3560 :cond_0
3561 iget-object v3, p0, Landroid/database/sqlite/SQLiteConnection;->mRecentOperations:Landroid/database/sqlite/SQLiteConnection$OperationLog;
3562
3563 const-string/jumbo v4, "execute"
3564
3565 invoke-virtual {v3, v4, p1, p2}, Landroid/database/sqlite/SQLiteConnection$OperationLog;->beginOperation(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/Object;)I
3566
3567 move-result v0
3568
3569 :try_start_0
3570 invoke-direct {p0, p1}, Landroid/database/sqlite/SQLiteConnection;->acquirePreparedStatement(Ljava/lang/String;)Landroid/database/sqlite/SQLiteConnection$PreparedStatement;
3571 :try_end_0
3572 .catch Ljava/lang/RuntimeException; {:try_start_0 .. :try_end_0} :catch_0
3573 .catchall {:try_start_0 .. :try_end_0} :catchall_2
3574
3575 move-result-object v2
3576
3577 :try_start_1
3578 invoke-direct {p0, v2}, Landroid/database/sqlite/SQLiteConnection;->throwIfStatementForbidden(Landroid/database/sqlite/SQLiteConnection$PreparedStatement;)V
3579
3580 invoke-direct {p0, v2, p2}, Landroid/database/sqlite/SQLiteConnection;->bindArguments(Landroid/database/sqlite/SQLiteConnection$PreparedStatement;[Ljava/lang/Object;)V
3581
3582 invoke-direct {p0, v2}, Landroid/database/sqlite/SQLiteConnection;->applyBlockGuardPolicy(Landroid/database/sqlite/SQLiteConnection$PreparedStatement;)V
3583
3584 invoke-direct {p0, p3}, Landroid/database/sqlite/SQLiteConnection;->attachCancellationSignal(Landroid/os/CancellationSignal;)V
3585 :try_end_1
3586 .catchall {:try_start_1 .. :try_end_1} :catchall_1
3587
3588 :try_start_2
3589 iget-wide v4, p0, Landroid/database/sqlite/SQLiteConnection;->mConnectionPtr:J
3590
3591 iget-wide v6, v2, Landroid/database/sqlite/SQLiteConnection$PreparedStatement;->mStatementPtr:J
3592
3593 invoke-static {v4, v5, v6, v7}, Landroid/database/sqlite/SQLiteConnection;->nativeExecute(JJ)V
3594 :try_end_2
3595 .catchall {:try_start_2 .. :try_end_2} :catchall_0
3596
3597 :try_start_3
3598 invoke-direct {p0, p3}, Landroid/database/sqlite/SQLiteConnection;->detachCancellationSignal(Landroid/os/CancellationSignal;)V
3599 :try_end_3
3600 .catchall {:try_start_3 .. :try_end_3} :catchall_1
3601
3602 :try_start_4
3603 invoke-direct {p0, v2}, Landroid/database/sqlite/SQLiteConnection;->releasePreparedStatement(Landroid/database/sqlite/SQLiteConnection$PreparedStatement;)V
3604 :try_end_4
3605 .catch Ljava/lang/RuntimeException; {:try_start_4 .. :try_end_4} :catch_0
3606 .catchall {:try_start_4 .. :try_end_4} :catchall_2
3607
3608 iget-object v3, p0, Landroid/database/sqlite/SQLiteConnection;->mRecentOperations:Landroid/database/sqlite/SQLiteConnection$OperationLog;
3609
3610 invoke-virtual {v3, v0}, Landroid/database/sqlite/SQLiteConnection$OperationLog;->endOperationDeferLog(I)Z
3611
3612 move-result v3
3613
3614 if-eqz v3, :cond_1
3615
3616 iget-object v3, p0, Landroid/database/sqlite/SQLiteConnection;->mRecentOperations:Landroid/database/sqlite/SQLiteConnection$OperationLog;
3617
3618 new-instance v4, Ljava/lang/StringBuilder;
3619
3620 invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V
3621
3622 const-string/jumbo v5, "window=\'"
3623
3624 invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
3625
3626 move-result-object v4
3627
3628 iget-object v5, p0, Landroid/database/sqlite/SQLiteConnection;->mConfiguration:Landroid/database/sqlite/SQLiteDatabaseConfiguration;
3629
3630 iget-object v5, v5, Landroid/database/sqlite/SQLiteDatabaseConfiguration;->path:Ljava/lang/String;
3631
3632 invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
3633
3634 move-result-object v4
3635
3636 const-string/jumbo v5, "\'"
3637
3638 invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
3639
3640 move-result-object v4
3641
3642 invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
3643
3644 move-result-object v4
3645
3646 invoke-virtual {v3, v0, v4}, Landroid/database/sqlite/SQLiteConnection$OperationLog;->logOperation(ILjava/lang/String;)V
3647
3648 :cond_1
3649 return-void
3650
3651 :catchall_0
3652 move-exception v3
3653
3654 :try_start_5
3655 invoke-direct {p0, p3}, Landroid/database/sqlite/SQLiteConnection;->detachCancellationSignal(Landroid/os/CancellationSignal;)V
3656
3657 throw v3
3658 :try_end_5
3659 .catchall {:try_start_5 .. :try_end_5} :catchall_1
3660
3661 :catchall_1
3662 move-exception v3
3663
3664 :try_start_6
3665 invoke-direct {p0, v2}, Landroid/database/sqlite/SQLiteConnection;->releasePreparedStatement(Landroid/database/sqlite/SQLiteConnection$PreparedStatement;)V
3666
3667 throw v3
3668 :try_end_6
3669 .catch Ljava/lang/RuntimeException; {:try_start_6 .. :try_end_6} :catch_0
3670 .catchall {:try_start_6 .. :try_end_6} :catchall_2
3671
3672 :catch_0
3673 move-exception v1
3674
3675 :try_start_7
3676 iget-object v3, p0, Landroid/database/sqlite/SQLiteConnection;->mRecentOperations:Landroid/database/sqlite/SQLiteConnection$OperationLog;
3677
3678 invoke-virtual {v3, v0, v1}, Landroid/database/sqlite/SQLiteConnection$OperationLog;->failOperation(ILjava/lang/Exception;)V
3679
3680 throw v1
3681 :try_end_7
3682 .catchall {:try_start_7 .. :try_end_7} :catchall_2
3683
3684 :catchall_2
3685 move-exception v3
3686
3687 iget-object v4, p0, Landroid/database/sqlite/SQLiteConnection;->mRecentOperations:Landroid/database/sqlite/SQLiteConnection$OperationLog;
3688
3689 invoke-virtual {v4, v0}, Landroid/database/sqlite/SQLiteConnection$OperationLog;->endOperationDeferLog(I)Z
3690
3691 move-result v4
3692
3693 if-eqz v4, :cond_2
3694
3695 iget-object v4, p0, Landroid/database/sqlite/SQLiteConnection;->mRecentOperations:Landroid/database/sqlite/SQLiteConnection$OperationLog;
3696
3697 new-instance v5, Ljava/lang/StringBuilder;
3698
3699 invoke-direct {v5}, Ljava/lang/StringBuilder;-><init>()V
3700
3701 const-string/jumbo v6, "window=\'"
3702
3703 invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
3704
3705 move-result-object v5
3706
3707 iget-object v6, p0, Landroid/database/sqlite/SQLiteConnection;->mConfiguration:Landroid/database/sqlite/SQLiteDatabaseConfiguration;
3708
3709 iget-object v6, v6, Landroid/database/sqlite/SQLiteDatabaseConfiguration;->path:Ljava/lang/String;
3710
3711 invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
3712
3713 move-result-object v5
3714
3715 const-string/jumbo v6, "\'"
3716
3717 invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
3718
3719 move-result-object v5
3720
3721 invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
3722
3723 move-result-object v5
3724
3725 invoke-virtual {v4, v0, v5}, Landroid/database/sqlite/SQLiteConnection$OperationLog;->logOperation(ILjava/lang/String;)V
3726
3727 :cond_2
3728 throw v3
3729.end method
3730
3731.method public executeForBlobFileDescriptor(Ljava/lang/String;[Ljava/lang/Object;Landroid/os/CancellationSignal;)Landroid/os/ParcelFileDescriptor;
3732 .locals 10
3733
3734 const/4 v4, 0x0
3735
3736 if-nez p1, :cond_0
3737
3738 new-instance v4, Ljava/lang/IllegalArgumentException;
3739
3740 const-string/jumbo v5, "sql must not be null."
3741
3742 invoke-direct {v4, v5}, Ljava/lang/IllegalArgumentException;-><init>(Ljava/lang/String;)V
3743
3744 throw v4
3745
3746 :cond_0
3747 iget-object v5, p0, Landroid/database/sqlite/SQLiteConnection;->mRecentOperations:Landroid/database/sqlite/SQLiteConnection$OperationLog;
3748
3749 const-string/jumbo v6, "executeForBlobFileDescriptor"
3750
3751 invoke-virtual {v5, v6, p1, p2}, Landroid/database/sqlite/SQLiteConnection$OperationLog;->beginOperation(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/Object;)I
3752
3753 move-result v0
3754
3755 :try_start_0
3756 invoke-direct {p0, p1}, Landroid/database/sqlite/SQLiteConnection;->acquirePreparedStatement(Ljava/lang/String;)Landroid/database/sqlite/SQLiteConnection$PreparedStatement;
3757 :try_end_0
3758 .catch Ljava/lang/RuntimeException; {:try_start_0 .. :try_end_0} :catch_0
3759 .catchall {:try_start_0 .. :try_end_0} :catchall_2
3760
3761 move-result-object v3
3762
3763 :try_start_1
3764 invoke-direct {p0, v3}, Landroid/database/sqlite/SQLiteConnection;->throwIfStatementForbidden(Landroid/database/sqlite/SQLiteConnection$PreparedStatement;)V
3765
3766 invoke-direct {p0, v3, p2}, Landroid/database/sqlite/SQLiteConnection;->bindArguments(Landroid/database/sqlite/SQLiteConnection$PreparedStatement;[Ljava/lang/Object;)V
3767
3768 invoke-direct {p0, v3}, Landroid/database/sqlite/SQLiteConnection;->applyBlockGuardPolicy(Landroid/database/sqlite/SQLiteConnection$PreparedStatement;)V
3769
3770 invoke-direct {p0, p3}, Landroid/database/sqlite/SQLiteConnection;->attachCancellationSignal(Landroid/os/CancellationSignal;)V
3771 :try_end_1
3772 .catchall {:try_start_1 .. :try_end_1} :catchall_1
3773
3774 :try_start_2
3775 iget-wide v6, p0, Landroid/database/sqlite/SQLiteConnection;->mConnectionPtr:J
3776
3777 iget-wide v8, v3, Landroid/database/sqlite/SQLiteConnection$PreparedStatement;->mStatementPtr:J
3778
3779 invoke-static {v6, v7, v8, v9}, Landroid/database/sqlite/SQLiteConnection;->nativeExecuteForBlobFileDescriptor(JJ)I
3780
3781 move-result v2
3782
3783 if-ltz v2, :cond_1
3784
3785 invoke-static {v2}, Landroid/os/ParcelFileDescriptor;->adoptFd(I)Landroid/os/ParcelFileDescriptor;
3786 :try_end_2
3787 .catchall {:try_start_2 .. :try_end_2} :catchall_0
3788
3789 move-result-object v4
3790
3791 :cond_1
3792 :try_start_3
3793 invoke-direct {p0, p3}, Landroid/database/sqlite/SQLiteConnection;->detachCancellationSignal(Landroid/os/CancellationSignal;)V
3794 :try_end_3
3795 .catchall {:try_start_3 .. :try_end_3} :catchall_1
3796
3797 :try_start_4
3798 invoke-direct {p0, v3}, Landroid/database/sqlite/SQLiteConnection;->releasePreparedStatement(Landroid/database/sqlite/SQLiteConnection$PreparedStatement;)V
3799 :try_end_4
3800 .catch Ljava/lang/RuntimeException; {:try_start_4 .. :try_end_4} :catch_0
3801 .catchall {:try_start_4 .. :try_end_4} :catchall_2
3802
3803 iget-object v5, p0, Landroid/database/sqlite/SQLiteConnection;->mRecentOperations:Landroid/database/sqlite/SQLiteConnection$OperationLog;
3804
3805 invoke-virtual {v5, v0}, Landroid/database/sqlite/SQLiteConnection$OperationLog;->endOperationDeferLog(I)Z
3806
3807 move-result v5
3808
3809 if-eqz v5, :cond_2
3810
3811 iget-object v5, p0, Landroid/database/sqlite/SQLiteConnection;->mRecentOperations:Landroid/database/sqlite/SQLiteConnection$OperationLog;
3812
3813 new-instance v6, Ljava/lang/StringBuilder;
3814
3815 invoke-direct {v6}, Ljava/lang/StringBuilder;-><init>()V
3816
3817 const-string/jumbo v7, "window=\'"
3818
3819 invoke-virtual {v6, v7}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
3820
3821 move-result-object v6
3822
3823 iget-object v7, p0, Landroid/database/sqlite/SQLiteConnection;->mConfiguration:Landroid/database/sqlite/SQLiteDatabaseConfiguration;
3824
3825 iget-object v7, v7, Landroid/database/sqlite/SQLiteDatabaseConfiguration;->path:Ljava/lang/String;
3826
3827 invoke-virtual {v6, v7}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
3828
3829 move-result-object v6
3830
3831 const-string/jumbo v7, "\'"
3832
3833 invoke-virtual {v6, v7}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
3834
3835 move-result-object v6
3836
3837 invoke-virtual {v6}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
3838
3839 move-result-object v6
3840
3841 invoke-virtual {v5, v0, v6}, Landroid/database/sqlite/SQLiteConnection$OperationLog;->logOperation(ILjava/lang/String;)V
3842
3843 :cond_2
3844 return-object v4
3845
3846 :catchall_0
3847 move-exception v4
3848
3849 :try_start_5
3850 invoke-direct {p0, p3}, Landroid/database/sqlite/SQLiteConnection;->detachCancellationSignal(Landroid/os/CancellationSignal;)V
3851
3852 throw v4
3853 :try_end_5
3854 .catchall {:try_start_5 .. :try_end_5} :catchall_1
3855
3856 :catchall_1
3857 move-exception v4
3858
3859 :try_start_6
3860 invoke-direct {p0, v3}, Landroid/database/sqlite/SQLiteConnection;->releasePreparedStatement(Landroid/database/sqlite/SQLiteConnection$PreparedStatement;)V
3861
3862 throw v4
3863 :try_end_6
3864 .catch Ljava/lang/RuntimeException; {:try_start_6 .. :try_end_6} :catch_0
3865 .catchall {:try_start_6 .. :try_end_6} :catchall_2
3866
3867 :catch_0
3868 move-exception v1
3869
3870 :try_start_7
3871 iget-object v4, p0, Landroid/database/sqlite/SQLiteConnection;->mRecentOperations:Landroid/database/sqlite/SQLiteConnection$OperationLog;
3872
3873 invoke-virtual {v4, v0, v1}, Landroid/database/sqlite/SQLiteConnection$OperationLog;->failOperation(ILjava/lang/Exception;)V
3874
3875 throw v1
3876 :try_end_7
3877 .catchall {:try_start_7 .. :try_end_7} :catchall_2
3878
3879 :catchall_2
3880 move-exception v4
3881
3882 iget-object v5, p0, Landroid/database/sqlite/SQLiteConnection;->mRecentOperations:Landroid/database/sqlite/SQLiteConnection$OperationLog;
3883
3884 invoke-virtual {v5, v0}, Landroid/database/sqlite/SQLiteConnection$OperationLog;->endOperationDeferLog(I)Z
3885
3886 move-result v5
3887
3888 if-eqz v5, :cond_3
3889
3890 iget-object v5, p0, Landroid/database/sqlite/SQLiteConnection;->mRecentOperations:Landroid/database/sqlite/SQLiteConnection$OperationLog;
3891
3892 new-instance v6, Ljava/lang/StringBuilder;
3893
3894 invoke-direct {v6}, Ljava/lang/StringBuilder;-><init>()V
3895
3896 const-string/jumbo v7, "window=\'"
3897
3898 invoke-virtual {v6, v7}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
3899
3900 move-result-object v6
3901
3902 iget-object v7, p0, Landroid/database/sqlite/SQLiteConnection;->mConfiguration:Landroid/database/sqlite/SQLiteDatabaseConfiguration;
3903
3904 iget-object v7, v7, Landroid/database/sqlite/SQLiteDatabaseConfiguration;->path:Ljava/lang/String;
3905
3906 invoke-virtual {v6, v7}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
3907
3908 move-result-object v6
3909
3910 const-string/jumbo v7, "\'"
3911
3912 invoke-virtual {v6, v7}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
3913
3914 move-result-object v6
3915
3916 invoke-virtual {v6}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
3917
3918 move-result-object v6
3919
3920 invoke-virtual {v5, v0, v6}, Landroid/database/sqlite/SQLiteConnection$OperationLog;->logOperation(ILjava/lang/String;)V
3921
3922 :cond_3
3923 throw v4
3924.end method
3925
3926.method public executeForChangedRowCount(Ljava/lang/String;[Ljava/lang/Object;Landroid/os/CancellationSignal;)I
3927 .locals 8
3928
3929 if-nez p1, :cond_0
3930
3931 new-instance v4, Ljava/lang/IllegalArgumentException;
3932
3933 const-string/jumbo v5, "sql must not be null."
3934
3935 invoke-direct {v4, v5}, Ljava/lang/IllegalArgumentException;-><init>(Ljava/lang/String;)V
3936
3937 throw v4
3938
3939 :cond_0
3940 const/4 v0, 0x0
3941
3942 iget-object v4, p0, Landroid/database/sqlite/SQLiteConnection;->mRecentOperations:Landroid/database/sqlite/SQLiteConnection$OperationLog;
3943
3944 const-string/jumbo v5, "executeForChangedRowCount"
3945
3946 invoke-virtual {v4, v5, p1, p2}, Landroid/database/sqlite/SQLiteConnection$OperationLog;->beginOperation(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/Object;)I
3947
3948 move-result v1
3949
3950 :try_start_0
3951 invoke-direct {p0, p1}, Landroid/database/sqlite/SQLiteConnection;->acquirePreparedStatement(Ljava/lang/String;)Landroid/database/sqlite/SQLiteConnection$PreparedStatement;
3952 :try_end_0
3953 .catch Ljava/lang/RuntimeException; {:try_start_0 .. :try_end_0} :catch_0
3954 .catchall {:try_start_0 .. :try_end_0} :catchall_2
3955
3956 move-result-object v3
3957
3958 :try_start_1
3959 invoke-direct {p0, v3}, Landroid/database/sqlite/SQLiteConnection;->throwIfStatementForbidden(Landroid/database/sqlite/SQLiteConnection$PreparedStatement;)V
3960
3961 invoke-direct {p0, v3, p2}, Landroid/database/sqlite/SQLiteConnection;->bindArguments(Landroid/database/sqlite/SQLiteConnection$PreparedStatement;[Ljava/lang/Object;)V
3962
3963 invoke-direct {p0, v3}, Landroid/database/sqlite/SQLiteConnection;->applyBlockGuardPolicy(Landroid/database/sqlite/SQLiteConnection$PreparedStatement;)V
3964
3965 invoke-direct {p0, p3}, Landroid/database/sqlite/SQLiteConnection;->attachCancellationSignal(Landroid/os/CancellationSignal;)V
3966 :try_end_1
3967 .catchall {:try_start_1 .. :try_end_1} :catchall_1
3968
3969 :try_start_2
3970 iget-wide v4, p0, Landroid/database/sqlite/SQLiteConnection;->mConnectionPtr:J
3971
3972 iget-wide v6, v3, Landroid/database/sqlite/SQLiteConnection$PreparedStatement;->mStatementPtr:J
3973
3974 invoke-static {v4, v5, v6, v7}, Landroid/database/sqlite/SQLiteConnection;->nativeExecuteForChangedRowCount(JJ)I
3975 :try_end_2
3976 .catchall {:try_start_2 .. :try_end_2} :catchall_0
3977
3978 move-result v0
3979
3980 :try_start_3
3981 invoke-direct {p0, p3}, Landroid/database/sqlite/SQLiteConnection;->detachCancellationSignal(Landroid/os/CancellationSignal;)V
3982 :try_end_3
3983 .catchall {:try_start_3 .. :try_end_3} :catchall_1
3984
3985 :try_start_4
3986 invoke-direct {p0, v3}, Landroid/database/sqlite/SQLiteConnection;->releasePreparedStatement(Landroid/database/sqlite/SQLiteConnection$PreparedStatement;)V
3987 :try_end_4
3988 .catch Ljava/lang/RuntimeException; {:try_start_4 .. :try_end_4} :catch_0
3989 .catchall {:try_start_4 .. :try_end_4} :catchall_2
3990
3991 iget-object v4, p0, Landroid/database/sqlite/SQLiteConnection;->mRecentOperations:Landroid/database/sqlite/SQLiteConnection$OperationLog;
3992
3993 invoke-virtual {v4, v1}, Landroid/database/sqlite/SQLiteConnection$OperationLog;->endOperationDeferLog(I)Z
3994
3995 move-result v4
3996
3997 if-eqz v4, :cond_1
3998
3999 iget-object v4, p0, Landroid/database/sqlite/SQLiteConnection;->mRecentOperations:Landroid/database/sqlite/SQLiteConnection$OperationLog;
4000
4001 new-instance v5, Ljava/lang/StringBuilder;
4002
4003 invoke-direct {v5}, Ljava/lang/StringBuilder;-><init>()V
4004
4005 const-string/jumbo v6, "window=\'"
4006
4007 invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
4008
4009 move-result-object v5
4010
4011 iget-object v6, p0, Landroid/database/sqlite/SQLiteConnection;->mConfiguration:Landroid/database/sqlite/SQLiteDatabaseConfiguration;
4012
4013 iget-object v6, v6, Landroid/database/sqlite/SQLiteDatabaseConfiguration;->path:Ljava/lang/String;
4014
4015 invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
4016
4017 move-result-object v5
4018
4019 const-string/jumbo v6, "\', "
4020
4021 invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
4022
4023 move-result-object v5
4024
4025 const-string/jumbo v6, "changedRows="
4026
4027 invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
4028
4029 move-result-object v5
4030
4031 invoke-virtual {v5, v0}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
4032
4033 move-result-object v5
4034
4035 invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
4036
4037 move-result-object v5
4038
4039 invoke-virtual {v4, v1, v5}, Landroid/database/sqlite/SQLiteConnection$OperationLog;->logOperation(ILjava/lang/String;)V
4040
4041 :cond_1
4042 return v0
4043
4044 :catchall_0
4045 move-exception v4
4046
4047 :try_start_5
4048 invoke-direct {p0, p3}, Landroid/database/sqlite/SQLiteConnection;->detachCancellationSignal(Landroid/os/CancellationSignal;)V
4049
4050 throw v4
4051 :try_end_5
4052 .catchall {:try_start_5 .. :try_end_5} :catchall_1
4053
4054 :catchall_1
4055 move-exception v4
4056
4057 :try_start_6
4058 invoke-direct {p0, v3}, Landroid/database/sqlite/SQLiteConnection;->releasePreparedStatement(Landroid/database/sqlite/SQLiteConnection$PreparedStatement;)V
4059
4060 throw v4
4061 :try_end_6
4062 .catch Ljava/lang/RuntimeException; {:try_start_6 .. :try_end_6} :catch_0
4063 .catchall {:try_start_6 .. :try_end_6} :catchall_2
4064
4065 :catch_0
4066 move-exception v2
4067
4068 :try_start_7
4069 iget-object v4, p0, Landroid/database/sqlite/SQLiteConnection;->mRecentOperations:Landroid/database/sqlite/SQLiteConnection$OperationLog;
4070
4071 invoke-virtual {v4, v1, v2}, Landroid/database/sqlite/SQLiteConnection$OperationLog;->failOperation(ILjava/lang/Exception;)V
4072
4073 throw v2
4074 :try_end_7
4075 .catchall {:try_start_7 .. :try_end_7} :catchall_2
4076
4077 :catchall_2
4078 move-exception v4
4079
4080 iget-object v5, p0, Landroid/database/sqlite/SQLiteConnection;->mRecentOperations:Landroid/database/sqlite/SQLiteConnection$OperationLog;
4081
4082 invoke-virtual {v5, v1}, Landroid/database/sqlite/SQLiteConnection$OperationLog;->endOperationDeferLog(I)Z
4083
4084 move-result v5
4085
4086 if-eqz v5, :cond_2
4087
4088 iget-object v5, p0, Landroid/database/sqlite/SQLiteConnection;->mRecentOperations:Landroid/database/sqlite/SQLiteConnection$OperationLog;
4089
4090 new-instance v6, Ljava/lang/StringBuilder;
4091
4092 invoke-direct {v6}, Ljava/lang/StringBuilder;-><init>()V
4093
4094 const-string/jumbo v7, "window=\'"
4095
4096 invoke-virtual {v6, v7}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
4097
4098 move-result-object v6
4099
4100 iget-object v7, p0, Landroid/database/sqlite/SQLiteConnection;->mConfiguration:Landroid/database/sqlite/SQLiteDatabaseConfiguration;
4101
4102 iget-object v7, v7, Landroid/database/sqlite/SQLiteDatabaseConfiguration;->path:Ljava/lang/String;
4103
4104 invoke-virtual {v6, v7}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
4105
4106 move-result-object v6
4107
4108 const-string/jumbo v7, "\', "
4109
4110 invoke-virtual {v6, v7}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
4111
4112 move-result-object v6
4113
4114 const-string/jumbo v7, "changedRows="
4115
4116 invoke-virtual {v6, v7}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
4117
4118 move-result-object v6
4119
4120 invoke-virtual {v6, v0}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
4121
4122 move-result-object v6
4123
4124 invoke-virtual {v6}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
4125
4126 move-result-object v6
4127
4128 invoke-virtual {v5, v1, v6}, Landroid/database/sqlite/SQLiteConnection$OperationLog;->logOperation(ILjava/lang/String;)V
4129
4130 :cond_2
4131 throw v4
4132.end method
4133
4134.method public executeForCursorWindow(Ljava/lang/String;[Ljava/lang/Object;Landroid/database/CursorWindow;IIZLandroid/os/CancellationSignal;)I
4135 .locals 21
4136
4137 if-nez p1, :cond_0
4138
4139 new-instance v4, Ljava/lang/IllegalArgumentException;
4140
4141 const-string/jumbo v5, "sql must not be null."
4142
4143 invoke-direct {v4, v5}, Ljava/lang/IllegalArgumentException;-><init>(Ljava/lang/String;)V
4144
4145 throw v4
4146
4147 :cond_0
4148 if-nez p3, :cond_1
4149
4150 new-instance v4, Ljava/lang/IllegalArgumentException;
4151
4152 const-string/jumbo v5, "window must not be null."
4153
4154 invoke-direct {v4, v5}, Ljava/lang/IllegalArgumentException;-><init>(Ljava/lang/String;)V
4155
4156 throw v4
4157
4158 :cond_1
4159 invoke-virtual/range {p3 .. p3}, Landroid/database/CursorWindow;->acquireReference()V
4160
4161 const/4 v13, -0x1
4162
4163 const/4 v15, -0x1
4164
4165 const/16 v17, -0x1
4166
4167 :try_start_0
4168 move-object/from16 v0, p0
4169
4170 iget-object v4, v0, Landroid/database/sqlite/SQLiteConnection;->mRecentOperations:Landroid/database/sqlite/SQLiteConnection$OperationLog;
4171
4172 const-string/jumbo v5, "executeForCursorWindow"
4173
4174 move-object/from16 v0, p1
4175
4176 move-object/from16 v1, p2
4177
4178 invoke-virtual {v4, v5, v0, v1}, Landroid/database/sqlite/SQLiteConnection$OperationLog;->beginOperation(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/Object;)I
4179 :try_end_0
4180 .catchall {:try_start_0 .. :try_end_0} :catchall_3
4181
4182 move-result v14
4183
4184 :try_start_1
4185 invoke-direct/range {p0 .. p1}, Landroid/database/sqlite/SQLiteConnection;->acquirePreparedStatement(Ljava/lang/String;)Landroid/database/sqlite/SQLiteConnection$PreparedStatement;
4186 :try_end_1
4187 .catch Ljava/lang/RuntimeException; {:try_start_1 .. :try_end_1} :catch_0
4188 .catchall {:try_start_1 .. :try_end_1} :catchall_2
4189
4190 move-result-object v20
4191
4192 :try_start_2
4193 move-object/from16 v0, p0
4194
4195 move-object/from16 v1, v20
4196
4197 invoke-direct {v0, v1}, Landroid/database/sqlite/SQLiteConnection;->throwIfStatementForbidden(Landroid/database/sqlite/SQLiteConnection$PreparedStatement;)V
4198
4199 move-object/from16 v0, p0
4200
4201 move-object/from16 v1, v20
4202
4203 move-object/from16 v2, p2
4204
4205 invoke-direct {v0, v1, v2}, Landroid/database/sqlite/SQLiteConnection;->bindArguments(Landroid/database/sqlite/SQLiteConnection$PreparedStatement;[Ljava/lang/Object;)V
4206
4207 move-object/from16 v0, p0
4208
4209 move-object/from16 v1, v20
4210
4211 invoke-direct {v0, v1}, Landroid/database/sqlite/SQLiteConnection;->applyBlockGuardPolicy(Landroid/database/sqlite/SQLiteConnection$PreparedStatement;)V
4212
4213 move-object/from16 v0, p0
4214
4215 move-object/from16 v1, p7
4216
4217 invoke-direct {v0, v1}, Landroid/database/sqlite/SQLiteConnection;->attachCancellationSignal(Landroid/os/CancellationSignal;)V
4218 :try_end_2
4219 .catchall {:try_start_2 .. :try_end_2} :catchall_1
4220
4221 :try_start_3
4222 move-object/from16 v0, p0
4223
4224 iget-wide v4, v0, Landroid/database/sqlite/SQLiteConnection;->mConnectionPtr:J
4225
4226 move-object/from16 v0, v20
4227
4228 iget-wide v6, v0, Landroid/database/sqlite/SQLiteConnection$PreparedStatement;->mStatementPtr:J
4229
4230 move-object/from16 v0, p3
4231
4232 iget-wide v8, v0, Landroid/database/CursorWindow;->mWindowPtr:J
4233
4234 move/from16 v10, p4
4235
4236 move/from16 v11, p5
4237
4238 move/from16 v12, p6
4239
4240 invoke-static/range {v4 .. v12}, Landroid/database/sqlite/SQLiteConnection;->nativeExecuteForCursorWindow(JJJIIZ)J
4241
4242 move-result-wide v18
4243
4244 const/16 v4, 0x20
4245
4246 shr-long v4, v18, v4
4247
4248 long-to-int v13, v4
4249
4250 move-wide/from16 v0, v18
4251
4252 long-to-int v15, v0
4253
4254 invoke-virtual/range {p3 .. p3}, Landroid/database/CursorWindow;->getNumRows()I
4255
4256 move-result v17
4257
4258 move-object/from16 v0, p3
4259
4260 invoke-virtual {v0, v13}, Landroid/database/CursorWindow;->setStartPosition(I)V
4261 :try_end_3
4262 .catchall {:try_start_3 .. :try_end_3} :catchall_0
4263
4264 :try_start_4
4265 move-object/from16 v0, p0
4266
4267 move-object/from16 v1, p7
4268
4269 invoke-direct {v0, v1}, Landroid/database/sqlite/SQLiteConnection;->detachCancellationSignal(Landroid/os/CancellationSignal;)V
4270 :try_end_4
4271 .catchall {:try_start_4 .. :try_end_4} :catchall_1
4272
4273 :try_start_5
4274 move-object/from16 v0, p0
4275
4276 move-object/from16 v1, v20
4277
4278 invoke-direct {v0, v1}, Landroid/database/sqlite/SQLiteConnection;->releasePreparedStatement(Landroid/database/sqlite/SQLiteConnection$PreparedStatement;)V
4279 :try_end_5
4280 .catch Ljava/lang/RuntimeException; {:try_start_5 .. :try_end_5} :catch_0
4281 .catchall {:try_start_5 .. :try_end_5} :catchall_2
4282
4283 :try_start_6
4284 move-object/from16 v0, p0
4285
4286 iget-object v4, v0, Landroid/database/sqlite/SQLiteConnection;->mRecentOperations:Landroid/database/sqlite/SQLiteConnection$OperationLog;
4287
4288 invoke-virtual {v4, v14}, Landroid/database/sqlite/SQLiteConnection$OperationLog;->endOperationDeferLog(I)Z
4289
4290 move-result v4
4291
4292 if-eqz v4, :cond_2
4293
4294 move-object/from16 v0, p0
4295
4296 iget-object v4, v0, Landroid/database/sqlite/SQLiteConnection;->mRecentOperations:Landroid/database/sqlite/SQLiteConnection$OperationLog;
4297
4298 new-instance v5, Ljava/lang/StringBuilder;
4299
4300 invoke-direct {v5}, Ljava/lang/StringBuilder;-><init>()V
4301
4302 const-string/jumbo v6, "window=\'"
4303
4304 invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
4305
4306 move-result-object v5
4307
4308 move-object/from16 v0, p3
4309
4310 invoke-virtual {v5, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
4311
4312 move-result-object v5
4313
4314 const-string/jumbo v6, "\', startPos="
4315
4316 invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
4317
4318 move-result-object v5
4319
4320 move/from16 v0, p4
4321
4322 invoke-virtual {v5, v0}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
4323
4324 move-result-object v5
4325
4326 const-string/jumbo v6, ", actualPos="
4327
4328 invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
4329
4330 move-result-object v5
4331
4332 invoke-virtual {v5, v13}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
4333
4334 move-result-object v5
4335
4336 const-string/jumbo v6, ", filledRows="
4337
4338 invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
4339
4340 move-result-object v5
4341
4342 move/from16 v0, v17
4343
4344 invoke-virtual {v5, v0}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
4345
4346 move-result-object v5
4347
4348 const-string/jumbo v6, ", countedRows="
4349
4350 invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
4351
4352 move-result-object v5
4353
4354 invoke-virtual {v5, v15}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
4355
4356 move-result-object v5
4357
4358 invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
4359
4360 move-result-object v5
4361
4362 invoke-virtual {v4, v14, v5}, Landroid/database/sqlite/SQLiteConnection$OperationLog;->logOperation(ILjava/lang/String;)V
4363 :try_end_6
4364 .catchall {:try_start_6 .. :try_end_6} :catchall_3
4365
4366 :cond_2
4367 invoke-virtual/range {p3 .. p3}, Landroid/database/CursorWindow;->releaseReference()V
4368
4369 return v15
4370
4371 :catchall_0
4372 move-exception v4
4373
4374 :try_start_7
4375 move-object/from16 v0, p0
4376
4377 move-object/from16 v1, p7
4378
4379 invoke-direct {v0, v1}, Landroid/database/sqlite/SQLiteConnection;->detachCancellationSignal(Landroid/os/CancellationSignal;)V
4380
4381 throw v4
4382 :try_end_7
4383 .catchall {:try_start_7 .. :try_end_7} :catchall_1
4384
4385 :catchall_1
4386 move-exception v4
4387
4388 :try_start_8
4389 move-object/from16 v0, p0
4390
4391 move-object/from16 v1, v20
4392
4393 invoke-direct {v0, v1}, Landroid/database/sqlite/SQLiteConnection;->releasePreparedStatement(Landroid/database/sqlite/SQLiteConnection$PreparedStatement;)V
4394
4395 throw v4
4396 :try_end_8
4397 .catch Ljava/lang/RuntimeException; {:try_start_8 .. :try_end_8} :catch_0
4398 .catchall {:try_start_8 .. :try_end_8} :catchall_2
4399
4400 :catch_0
4401 move-exception v16
4402
4403 :try_start_9
4404 move-object/from16 v0, p0
4405
4406 iget-object v4, v0, Landroid/database/sqlite/SQLiteConnection;->mRecentOperations:Landroid/database/sqlite/SQLiteConnection$OperationLog;
4407
4408 move-object/from16 v0, v16
4409
4410 invoke-virtual {v4, v14, v0}, Landroid/database/sqlite/SQLiteConnection$OperationLog;->failOperation(ILjava/lang/Exception;)V
4411
4412 throw v16
4413 :try_end_9
4414 .catchall {:try_start_9 .. :try_end_9} :catchall_2
4415
4416 :catchall_2
4417 move-exception v4
4418
4419 :try_start_a
4420 move-object/from16 v0, p0
4421
4422 iget-object v5, v0, Landroid/database/sqlite/SQLiteConnection;->mRecentOperations:Landroid/database/sqlite/SQLiteConnection$OperationLog;
4423
4424 invoke-virtual {v5, v14}, Landroid/database/sqlite/SQLiteConnection$OperationLog;->endOperationDeferLog(I)Z
4425
4426 move-result v5
4427
4428 if-eqz v5, :cond_3
4429
4430 move-object/from16 v0, p0
4431
4432 iget-object v5, v0, Landroid/database/sqlite/SQLiteConnection;->mRecentOperations:Landroid/database/sqlite/SQLiteConnection$OperationLog;
4433
4434 new-instance v6, Ljava/lang/StringBuilder;
4435
4436 invoke-direct {v6}, Ljava/lang/StringBuilder;-><init>()V
4437
4438 const-string/jumbo v7, "window=\'"
4439
4440 invoke-virtual {v6, v7}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
4441
4442 move-result-object v6
4443
4444 move-object/from16 v0, p3
4445
4446 invoke-virtual {v6, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
4447
4448 move-result-object v6
4449
4450 const-string/jumbo v7, "\', startPos="
4451
4452 invoke-virtual {v6, v7}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
4453
4454 move-result-object v6
4455
4456 move/from16 v0, p4
4457
4458 invoke-virtual {v6, v0}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
4459
4460 move-result-object v6
4461
4462 const-string/jumbo v7, ", actualPos="
4463
4464 invoke-virtual {v6, v7}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
4465
4466 move-result-object v6
4467
4468 invoke-virtual {v6, v13}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
4469
4470 move-result-object v6
4471
4472 const-string/jumbo v7, ", filledRows="
4473
4474 invoke-virtual {v6, v7}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
4475
4476 move-result-object v6
4477
4478 move/from16 v0, v17
4479
4480 invoke-virtual {v6, v0}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
4481
4482 move-result-object v6
4483
4484 const-string/jumbo v7, ", countedRows="
4485
4486 invoke-virtual {v6, v7}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
4487
4488 move-result-object v6
4489
4490 invoke-virtual {v6, v15}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
4491
4492 move-result-object v6
4493
4494 invoke-virtual {v6}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
4495
4496 move-result-object v6
4497
4498 invoke-virtual {v5, v14, v6}, Landroid/database/sqlite/SQLiteConnection$OperationLog;->logOperation(ILjava/lang/String;)V
4499
4500 :cond_3
4501 throw v4
4502 :try_end_a
4503 .catchall {:try_start_a .. :try_end_a} :catchall_3
4504
4505 :catchall_3
4506 move-exception v4
4507
4508 invoke-virtual/range {p3 .. p3}, Landroid/database/CursorWindow;->releaseReference()V
4509
4510 throw v4
4511.end method
4512
4513.method public executeForLastInsertedRowId(Ljava/lang/String;[Ljava/lang/Object;Landroid/os/CancellationSignal;)J
4514 .locals 8
4515
4516 if-nez p1, :cond_0
4517
4518 new-instance v3, Ljava/lang/IllegalArgumentException;
4519
4520 const-string/jumbo v4, "sql must not be null."
4521
4522 invoke-direct {v3, v4}, Ljava/lang/IllegalArgumentException;-><init>(Ljava/lang/String;)V
4523
4524 throw v3
4525
4526 :cond_0
4527 iget-object v3, p0, Landroid/database/sqlite/SQLiteConnection;->mRecentOperations:Landroid/database/sqlite/SQLiteConnection$OperationLog;
4528
4529 const-string/jumbo v4, "executeForLastInsertedRowId"
4530
4531 invoke-virtual {v3, v4, p1, p2}, Landroid/database/sqlite/SQLiteConnection$OperationLog;->beginOperation(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/Object;)I
4532
4533 move-result v0
4534
4535 :try_start_0
4536 invoke-direct {p0, p1}, Landroid/database/sqlite/SQLiteConnection;->acquirePreparedStatement(Ljava/lang/String;)Landroid/database/sqlite/SQLiteConnection$PreparedStatement;
4537 :try_end_0
4538 .catch Ljava/lang/RuntimeException; {:try_start_0 .. :try_end_0} :catch_0
4539 .catchall {:try_start_0 .. :try_end_0} :catchall_2
4540
4541 move-result-object v2
4542
4543 :try_start_1
4544 invoke-direct {p0, v2}, Landroid/database/sqlite/SQLiteConnection;->throwIfStatementForbidden(Landroid/database/sqlite/SQLiteConnection$PreparedStatement;)V
4545
4546 invoke-direct {p0, v2, p2}, Landroid/database/sqlite/SQLiteConnection;->bindArguments(Landroid/database/sqlite/SQLiteConnection$PreparedStatement;[Ljava/lang/Object;)V
4547
4548 invoke-direct {p0, v2}, Landroid/database/sqlite/SQLiteConnection;->applyBlockGuardPolicy(Landroid/database/sqlite/SQLiteConnection$PreparedStatement;)V
4549
4550 invoke-direct {p0, p3}, Landroid/database/sqlite/SQLiteConnection;->attachCancellationSignal(Landroid/os/CancellationSignal;)V
4551 :try_end_1
4552 .catchall {:try_start_1 .. :try_end_1} :catchall_1
4553
4554 :try_start_2
4555 iget-wide v4, p0, Landroid/database/sqlite/SQLiteConnection;->mConnectionPtr:J
4556
4557 iget-wide v6, v2, Landroid/database/sqlite/SQLiteConnection$PreparedStatement;->mStatementPtr:J
4558
4559 invoke-static {v4, v5, v6, v7}, Landroid/database/sqlite/SQLiteConnection;->nativeExecuteForLastInsertedRowId(JJ)J
4560 :try_end_2
4561 .catchall {:try_start_2 .. :try_end_2} :catchall_0
4562
4563 move-result-wide v4
4564
4565 :try_start_3
4566 invoke-direct {p0, p3}, Landroid/database/sqlite/SQLiteConnection;->detachCancellationSignal(Landroid/os/CancellationSignal;)V
4567 :try_end_3
4568 .catchall {:try_start_3 .. :try_end_3} :catchall_1
4569
4570 :try_start_4
4571 invoke-direct {p0, v2}, Landroid/database/sqlite/SQLiteConnection;->releasePreparedStatement(Landroid/database/sqlite/SQLiteConnection$PreparedStatement;)V
4572 :try_end_4
4573 .catch Ljava/lang/RuntimeException; {:try_start_4 .. :try_end_4} :catch_0
4574 .catchall {:try_start_4 .. :try_end_4} :catchall_2
4575
4576 iget-object v3, p0, Landroid/database/sqlite/SQLiteConnection;->mRecentOperations:Landroid/database/sqlite/SQLiteConnection$OperationLog;
4577
4578 invoke-virtual {v3, v0}, Landroid/database/sqlite/SQLiteConnection$OperationLog;->endOperationDeferLog(I)Z
4579
4580 move-result v3
4581
4582 if-eqz v3, :cond_1
4583
4584 iget-object v3, p0, Landroid/database/sqlite/SQLiteConnection;->mRecentOperations:Landroid/database/sqlite/SQLiteConnection$OperationLog;
4585
4586 new-instance v6, Ljava/lang/StringBuilder;
4587
4588 invoke-direct {v6}, Ljava/lang/StringBuilder;-><init>()V
4589
4590 const-string/jumbo v7, "window=\'"
4591
4592 invoke-virtual {v6, v7}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
4593
4594 move-result-object v6
4595
4596 iget-object v7, p0, Landroid/database/sqlite/SQLiteConnection;->mConfiguration:Landroid/database/sqlite/SQLiteDatabaseConfiguration;
4597
4598 iget-object v7, v7, Landroid/database/sqlite/SQLiteDatabaseConfiguration;->path:Ljava/lang/String;
4599
4600 invoke-virtual {v6, v7}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
4601
4602 move-result-object v6
4603
4604 const-string/jumbo v7, "\'"
4605
4606 invoke-virtual {v6, v7}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
4607
4608 move-result-object v6
4609
4610 invoke-virtual {v6}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
4611
4612 move-result-object v6
4613
4614 invoke-virtual {v3, v0, v6}, Landroid/database/sqlite/SQLiteConnection$OperationLog;->logOperation(ILjava/lang/String;)V
4615
4616 :cond_1
4617 return-wide v4
4618
4619 :catchall_0
4620 move-exception v3
4621
4622 :try_start_5
4623 invoke-direct {p0, p3}, Landroid/database/sqlite/SQLiteConnection;->detachCancellationSignal(Landroid/os/CancellationSignal;)V
4624
4625 throw v3
4626 :try_end_5
4627 .catchall {:try_start_5 .. :try_end_5} :catchall_1
4628
4629 :catchall_1
4630 move-exception v3
4631
4632 :try_start_6
4633 invoke-direct {p0, v2}, Landroid/database/sqlite/SQLiteConnection;->releasePreparedStatement(Landroid/database/sqlite/SQLiteConnection$PreparedStatement;)V
4634
4635 throw v3
4636 :try_end_6
4637 .catch Ljava/lang/RuntimeException; {:try_start_6 .. :try_end_6} :catch_0
4638 .catchall {:try_start_6 .. :try_end_6} :catchall_2
4639
4640 :catch_0
4641 move-exception v1
4642
4643 :try_start_7
4644 iget-object v3, p0, Landroid/database/sqlite/SQLiteConnection;->mRecentOperations:Landroid/database/sqlite/SQLiteConnection$OperationLog;
4645
4646 invoke-virtual {v3, v0, v1}, Landroid/database/sqlite/SQLiteConnection$OperationLog;->failOperation(ILjava/lang/Exception;)V
4647
4648 throw v1
4649 :try_end_7
4650 .catchall {:try_start_7 .. :try_end_7} :catchall_2
4651
4652 :catchall_2
4653 move-exception v3
4654
4655 iget-object v4, p0, Landroid/database/sqlite/SQLiteConnection;->mRecentOperations:Landroid/database/sqlite/SQLiteConnection$OperationLog;
4656
4657 invoke-virtual {v4, v0}, Landroid/database/sqlite/SQLiteConnection$OperationLog;->endOperationDeferLog(I)Z
4658
4659 move-result v4
4660
4661 if-eqz v4, :cond_2
4662
4663 iget-object v4, p0, Landroid/database/sqlite/SQLiteConnection;->mRecentOperations:Landroid/database/sqlite/SQLiteConnection$OperationLog;
4664
4665 new-instance v5, Ljava/lang/StringBuilder;
4666
4667 invoke-direct {v5}, Ljava/lang/StringBuilder;-><init>()V
4668
4669 const-string/jumbo v6, "window=\'"
4670
4671 invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
4672
4673 move-result-object v5
4674
4675 iget-object v6, p0, Landroid/database/sqlite/SQLiteConnection;->mConfiguration:Landroid/database/sqlite/SQLiteDatabaseConfiguration;
4676
4677 iget-object v6, v6, Landroid/database/sqlite/SQLiteDatabaseConfiguration;->path:Ljava/lang/String;
4678
4679 invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
4680
4681 move-result-object v5
4682
4683 const-string/jumbo v6, "\'"
4684
4685 invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
4686
4687 move-result-object v5
4688
4689 invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
4690
4691 move-result-object v5
4692
4693 invoke-virtual {v4, v0, v5}, Landroid/database/sqlite/SQLiteConnection$OperationLog;->logOperation(ILjava/lang/String;)V
4694
4695 :cond_2
4696 throw v3
4697.end method
4698
4699.method public executeForLong(Ljava/lang/String;[Ljava/lang/Object;Landroid/os/CancellationSignal;)J
4700 .locals 8
4701
4702 if-nez p1, :cond_0
4703
4704 new-instance v3, Ljava/lang/IllegalArgumentException;
4705
4706 const-string/jumbo v4, "sql must not be null."
4707
4708 invoke-direct {v3, v4}, Ljava/lang/IllegalArgumentException;-><init>(Ljava/lang/String;)V
4709
4710 throw v3
4711
4712 :cond_0
4713 iget-object v3, p0, Landroid/database/sqlite/SQLiteConnection;->mRecentOperations:Landroid/database/sqlite/SQLiteConnection$OperationLog;
4714
4715 const-string/jumbo v4, "executeForLong"
4716
4717 invoke-virtual {v3, v4, p1, p2}, Landroid/database/sqlite/SQLiteConnection$OperationLog;->beginOperation(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/Object;)I
4718
4719 move-result v0
4720
4721 :try_start_0
4722 invoke-direct {p0, p1}, Landroid/database/sqlite/SQLiteConnection;->acquirePreparedStatement(Ljava/lang/String;)Landroid/database/sqlite/SQLiteConnection$PreparedStatement;
4723 :try_end_0
4724 .catch Ljava/lang/RuntimeException; {:try_start_0 .. :try_end_0} :catch_0
4725 .catchall {:try_start_0 .. :try_end_0} :catchall_2
4726
4727 move-result-object v2
4728
4729 :try_start_1
4730 invoke-direct {p0, v2}, Landroid/database/sqlite/SQLiteConnection;->throwIfStatementForbidden(Landroid/database/sqlite/SQLiteConnection$PreparedStatement;)V
4731
4732 invoke-direct {p0, v2, p2}, Landroid/database/sqlite/SQLiteConnection;->bindArguments(Landroid/database/sqlite/SQLiteConnection$PreparedStatement;[Ljava/lang/Object;)V
4733
4734 invoke-direct {p0, v2}, Landroid/database/sqlite/SQLiteConnection;->applyBlockGuardPolicy(Landroid/database/sqlite/SQLiteConnection$PreparedStatement;)V
4735
4736 invoke-direct {p0, p3}, Landroid/database/sqlite/SQLiteConnection;->attachCancellationSignal(Landroid/os/CancellationSignal;)V
4737 :try_end_1
4738 .catchall {:try_start_1 .. :try_end_1} :catchall_1
4739
4740 :try_start_2
4741 iget-wide v4, p0, Landroid/database/sqlite/SQLiteConnection;->mConnectionPtr:J
4742
4743 iget-wide v6, v2, Landroid/database/sqlite/SQLiteConnection$PreparedStatement;->mStatementPtr:J
4744
4745 invoke-static {v4, v5, v6, v7}, Landroid/database/sqlite/SQLiteConnection;->nativeExecuteForLong(JJ)J
4746 :try_end_2
4747 .catchall {:try_start_2 .. :try_end_2} :catchall_0
4748
4749 move-result-wide v4
4750
4751 :try_start_3
4752 invoke-direct {p0, p3}, Landroid/database/sqlite/SQLiteConnection;->detachCancellationSignal(Landroid/os/CancellationSignal;)V
4753 :try_end_3
4754 .catchall {:try_start_3 .. :try_end_3} :catchall_1
4755
4756 :try_start_4
4757 invoke-direct {p0, v2}, Landroid/database/sqlite/SQLiteConnection;->releasePreparedStatement(Landroid/database/sqlite/SQLiteConnection$PreparedStatement;)V
4758 :try_end_4
4759 .catch Ljava/lang/RuntimeException; {:try_start_4 .. :try_end_4} :catch_0
4760 .catchall {:try_start_4 .. :try_end_4} :catchall_2
4761
4762 iget-object v3, p0, Landroid/database/sqlite/SQLiteConnection;->mRecentOperations:Landroid/database/sqlite/SQLiteConnection$OperationLog;
4763
4764 invoke-virtual {v3, v0}, Landroid/database/sqlite/SQLiteConnection$OperationLog;->endOperationDeferLog(I)Z
4765
4766 move-result v3
4767
4768 if-eqz v3, :cond_1
4769
4770 iget-object v3, p0, Landroid/database/sqlite/SQLiteConnection;->mRecentOperations:Landroid/database/sqlite/SQLiteConnection$OperationLog;
4771
4772 new-instance v6, Ljava/lang/StringBuilder;
4773
4774 invoke-direct {v6}, Ljava/lang/StringBuilder;-><init>()V
4775
4776 const-string/jumbo v7, "window=\'"
4777
4778 invoke-virtual {v6, v7}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
4779
4780 move-result-object v6
4781
4782 iget-object v7, p0, Landroid/database/sqlite/SQLiteConnection;->mConfiguration:Landroid/database/sqlite/SQLiteDatabaseConfiguration;
4783
4784 iget-object v7, v7, Landroid/database/sqlite/SQLiteDatabaseConfiguration;->path:Ljava/lang/String;
4785
4786 invoke-virtual {v6, v7}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
4787
4788 move-result-object v6
4789
4790 const-string/jumbo v7, "\'"
4791
4792 invoke-virtual {v6, v7}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
4793
4794 move-result-object v6
4795
4796 invoke-virtual {v6}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
4797
4798 move-result-object v6
4799
4800 invoke-virtual {v3, v0, v6}, Landroid/database/sqlite/SQLiteConnection$OperationLog;->logOperation(ILjava/lang/String;)V
4801
4802 :cond_1
4803 return-wide v4
4804
4805 :catchall_0
4806 move-exception v3
4807
4808 :try_start_5
4809 invoke-direct {p0, p3}, Landroid/database/sqlite/SQLiteConnection;->detachCancellationSignal(Landroid/os/CancellationSignal;)V
4810
4811 throw v3
4812 :try_end_5
4813 .catchall {:try_start_5 .. :try_end_5} :catchall_1
4814
4815 :catchall_1
4816 move-exception v3
4817
4818 :try_start_6
4819 invoke-direct {p0, v2}, Landroid/database/sqlite/SQLiteConnection;->releasePreparedStatement(Landroid/database/sqlite/SQLiteConnection$PreparedStatement;)V
4820
4821 throw v3
4822 :try_end_6
4823 .catch Ljava/lang/RuntimeException; {:try_start_6 .. :try_end_6} :catch_0
4824 .catchall {:try_start_6 .. :try_end_6} :catchall_2
4825
4826 :catch_0
4827 move-exception v1
4828
4829 :try_start_7
4830 iget-object v3, p0, Landroid/database/sqlite/SQLiteConnection;->mRecentOperations:Landroid/database/sqlite/SQLiteConnection$OperationLog;
4831
4832 invoke-virtual {v3, v0, v1}, Landroid/database/sqlite/SQLiteConnection$OperationLog;->failOperation(ILjava/lang/Exception;)V
4833
4834 throw v1
4835 :try_end_7
4836 .catchall {:try_start_7 .. :try_end_7} :catchall_2
4837
4838 :catchall_2
4839 move-exception v3
4840
4841 iget-object v4, p0, Landroid/database/sqlite/SQLiteConnection;->mRecentOperations:Landroid/database/sqlite/SQLiteConnection$OperationLog;
4842
4843 invoke-virtual {v4, v0}, Landroid/database/sqlite/SQLiteConnection$OperationLog;->endOperationDeferLog(I)Z
4844
4845 move-result v4
4846
4847 if-eqz v4, :cond_2
4848
4849 iget-object v4, p0, Landroid/database/sqlite/SQLiteConnection;->mRecentOperations:Landroid/database/sqlite/SQLiteConnection$OperationLog;
4850
4851 new-instance v5, Ljava/lang/StringBuilder;
4852
4853 invoke-direct {v5}, Ljava/lang/StringBuilder;-><init>()V
4854
4855 const-string/jumbo v6, "window=\'"
4856
4857 invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
4858
4859 move-result-object v5
4860
4861 iget-object v6, p0, Landroid/database/sqlite/SQLiteConnection;->mConfiguration:Landroid/database/sqlite/SQLiteDatabaseConfiguration;
4862
4863 iget-object v6, v6, Landroid/database/sqlite/SQLiteDatabaseConfiguration;->path:Ljava/lang/String;
4864
4865 invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
4866
4867 move-result-object v5
4868
4869 const-string/jumbo v6, "\'"
4870
4871 invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
4872
4873 move-result-object v5
4874
4875 invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
4876
4877 move-result-object v5
4878
4879 invoke-virtual {v4, v0, v5}, Landroid/database/sqlite/SQLiteConnection$OperationLog;->logOperation(ILjava/lang/String;)V
4880
4881 :cond_2
4882 throw v3
4883.end method
4884
4885.method public executeForString(Ljava/lang/String;[Ljava/lang/Object;Landroid/os/CancellationSignal;)Ljava/lang/String;
4886 .locals 8
4887
4888 if-nez p1, :cond_0
4889
4890 new-instance v3, Ljava/lang/IllegalArgumentException;
4891
4892 const-string/jumbo v4, "sql must not be null."
4893
4894 invoke-direct {v3, v4}, Ljava/lang/IllegalArgumentException;-><init>(Ljava/lang/String;)V
4895
4896 throw v3
4897
4898 :cond_0
4899 iget-object v3, p0, Landroid/database/sqlite/SQLiteConnection;->mRecentOperations:Landroid/database/sqlite/SQLiteConnection$OperationLog;
4900
4901 const-string/jumbo v4, "executeForString"
4902
4903 invoke-virtual {v3, v4, p1, p2}, Landroid/database/sqlite/SQLiteConnection$OperationLog;->beginOperation(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/Object;)I
4904
4905 move-result v0
4906
4907 :try_start_0
4908 invoke-direct {p0, p1}, Landroid/database/sqlite/SQLiteConnection;->acquirePreparedStatement(Ljava/lang/String;)Landroid/database/sqlite/SQLiteConnection$PreparedStatement;
4909 :try_end_0
4910 .catch Ljava/lang/RuntimeException; {:try_start_0 .. :try_end_0} :catch_0
4911 .catchall {:try_start_0 .. :try_end_0} :catchall_2
4912
4913 move-result-object v2
4914
4915 :try_start_1
4916 invoke-direct {p0, v2}, Landroid/database/sqlite/SQLiteConnection;->throwIfStatementForbidden(Landroid/database/sqlite/SQLiteConnection$PreparedStatement;)V
4917
4918 invoke-direct {p0, v2, p2}, Landroid/database/sqlite/SQLiteConnection;->bindArguments(Landroid/database/sqlite/SQLiteConnection$PreparedStatement;[Ljava/lang/Object;)V
4919
4920 invoke-direct {p0, v2}, Landroid/database/sqlite/SQLiteConnection;->applyBlockGuardPolicy(Landroid/database/sqlite/SQLiteConnection$PreparedStatement;)V
4921
4922 invoke-direct {p0, p3}, Landroid/database/sqlite/SQLiteConnection;->attachCancellationSignal(Landroid/os/CancellationSignal;)V
4923 :try_end_1
4924 .catchall {:try_start_1 .. :try_end_1} :catchall_1
4925
4926 :try_start_2
4927 iget-wide v4, p0, Landroid/database/sqlite/SQLiteConnection;->mConnectionPtr:J
4928
4929 iget-wide v6, v2, Landroid/database/sqlite/SQLiteConnection$PreparedStatement;->mStatementPtr:J
4930
4931 invoke-static {v4, v5, v6, v7}, Landroid/database/sqlite/SQLiteConnection;->nativeExecuteForString(JJ)Ljava/lang/String;
4932 :try_end_2
4933 .catchall {:try_start_2 .. :try_end_2} :catchall_0
4934
4935 move-result-object v3
4936
4937 :try_start_3
4938 invoke-direct {p0, p3}, Landroid/database/sqlite/SQLiteConnection;->detachCancellationSignal(Landroid/os/CancellationSignal;)V
4939 :try_end_3
4940 .catchall {:try_start_3 .. :try_end_3} :catchall_1
4941
4942 :try_start_4
4943 invoke-direct {p0, v2}, Landroid/database/sqlite/SQLiteConnection;->releasePreparedStatement(Landroid/database/sqlite/SQLiteConnection$PreparedStatement;)V
4944 :try_end_4
4945 .catch Ljava/lang/RuntimeException; {:try_start_4 .. :try_end_4} :catch_0
4946 .catchall {:try_start_4 .. :try_end_4} :catchall_2
4947
4948 iget-object v4, p0, Landroid/database/sqlite/SQLiteConnection;->mRecentOperations:Landroid/database/sqlite/SQLiteConnection$OperationLog;
4949
4950 invoke-virtual {v4, v0}, Landroid/database/sqlite/SQLiteConnection$OperationLog;->endOperationDeferLog(I)Z
4951
4952 move-result v4
4953
4954 if-eqz v4, :cond_1
4955
4956 iget-object v4, p0, Landroid/database/sqlite/SQLiteConnection;->mRecentOperations:Landroid/database/sqlite/SQLiteConnection$OperationLog;
4957
4958 new-instance v5, Ljava/lang/StringBuilder;
4959
4960 invoke-direct {v5}, Ljava/lang/StringBuilder;-><init>()V
4961
4962 const-string/jumbo v6, "window=\'"
4963
4964 invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
4965
4966 move-result-object v5
4967
4968 iget-object v6, p0, Landroid/database/sqlite/SQLiteConnection;->mConfiguration:Landroid/database/sqlite/SQLiteDatabaseConfiguration;
4969
4970 iget-object v6, v6, Landroid/database/sqlite/SQLiteDatabaseConfiguration;->path:Ljava/lang/String;
4971
4972 invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
4973
4974 move-result-object v5
4975
4976 const-string/jumbo v6, "\'"
4977
4978 invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
4979
4980 move-result-object v5
4981
4982 invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
4983
4984 move-result-object v5
4985
4986 invoke-virtual {v4, v0, v5}, Landroid/database/sqlite/SQLiteConnection$OperationLog;->logOperation(ILjava/lang/String;)V
4987
4988 :cond_1
4989 return-object v3
4990
4991 :catchall_0
4992 move-exception v3
4993
4994 :try_start_5
4995 invoke-direct {p0, p3}, Landroid/database/sqlite/SQLiteConnection;->detachCancellationSignal(Landroid/os/CancellationSignal;)V
4996
4997 throw v3
4998 :try_end_5
4999 .catchall {:try_start_5 .. :try_end_5} :catchall_1
5000
5001 :catchall_1
5002 move-exception v3
5003
5004 :try_start_6
5005 invoke-direct {p0, v2}, Landroid/database/sqlite/SQLiteConnection;->releasePreparedStatement(Landroid/database/sqlite/SQLiteConnection$PreparedStatement;)V
5006
5007 throw v3
5008 :try_end_6
5009 .catch Ljava/lang/RuntimeException; {:try_start_6 .. :try_end_6} :catch_0
5010 .catchall {:try_start_6 .. :try_end_6} :catchall_2
5011
5012 :catch_0
5013 move-exception v1
5014
5015 :try_start_7
5016 iget-object v3, p0, Landroid/database/sqlite/SQLiteConnection;->mRecentOperations:Landroid/database/sqlite/SQLiteConnection$OperationLog;
5017
5018 invoke-virtual {v3, v0, v1}, Landroid/database/sqlite/SQLiteConnection$OperationLog;->failOperation(ILjava/lang/Exception;)V
5019
5020 throw v1
5021 :try_end_7
5022 .catchall {:try_start_7 .. :try_end_7} :catchall_2
5023
5024 :catchall_2
5025 move-exception v3
5026
5027 iget-object v4, p0, Landroid/database/sqlite/SQLiteConnection;->mRecentOperations:Landroid/database/sqlite/SQLiteConnection$OperationLog;
5028
5029 invoke-virtual {v4, v0}, Landroid/database/sqlite/SQLiteConnection$OperationLog;->endOperationDeferLog(I)Z
5030
5031 move-result v4
5032
5033 if-eqz v4, :cond_2
5034
5035 iget-object v4, p0, Landroid/database/sqlite/SQLiteConnection;->mRecentOperations:Landroid/database/sqlite/SQLiteConnection$OperationLog;
5036
5037 new-instance v5, Ljava/lang/StringBuilder;
5038
5039 invoke-direct {v5}, Ljava/lang/StringBuilder;-><init>()V
5040
5041 const-string/jumbo v6, "window=\'"
5042
5043 invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
5044
5045 move-result-object v5
5046
5047 iget-object v6, p0, Landroid/database/sqlite/SQLiteConnection;->mConfiguration:Landroid/database/sqlite/SQLiteDatabaseConfiguration;
5048
5049 iget-object v6, v6, Landroid/database/sqlite/SQLiteDatabaseConfiguration;->path:Ljava/lang/String;
5050
5051 invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
5052
5053 move-result-object v5
5054
5055 const-string/jumbo v6, "\'"
5056
5057 invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
5058
5059 move-result-object v5
5060
5061 invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
5062
5063 move-result-object v5
5064
5065 invoke-virtual {v4, v0, v5}, Landroid/database/sqlite/SQLiteConnection$OperationLog;->logOperation(ILjava/lang/String;)V
5066
5067 :cond_2
5068 throw v3
5069.end method
5070
5071.method public exportDB(Ljava/lang/String;)V
5072 .locals 2
5073
5074 iget-wide v0, p0, Landroid/database/sqlite/SQLiteConnection;->mConnectionPtr:J
5075
5076 invoke-static {v0, v1, p1}, Landroid/database/sqlite/SQLiteConnection;->nativeExportDB(JLjava/lang/String;)V
5077
5078 return-void
5079.end method
5080
5081.method protected finalize()V
5082 .locals 4
5083 .annotation system Ldalvik/annotation/Throws;
5084 value = {
5085 Ljava/lang/Throwable;
5086 }
5087 .end annotation
5088
5089 :try_start_0
5090 iget-object v0, p0, Landroid/database/sqlite/SQLiteConnection;->mPool:Landroid/database/sqlite/SQLiteConnectionPool;
5091
5092 if-eqz v0, :cond_0
5093
5094 iget-wide v0, p0, Landroid/database/sqlite/SQLiteConnection;->mConnectionPtr:J
5095
5096 const-wide/16 v2, 0x0
5097
5098 cmp-long v0, v0, v2
5099
5100 if-eqz v0, :cond_0
5101
5102 iget-object v0, p0, Landroid/database/sqlite/SQLiteConnection;->mPool:Landroid/database/sqlite/SQLiteConnectionPool;
5103
5104 invoke-virtual {v0}, Landroid/database/sqlite/SQLiteConnectionPool;->onConnectionLeaked()V
5105
5106 :cond_0
5107 const/4 v0, 0x1
5108
5109 invoke-direct {p0, v0}, Landroid/database/sqlite/SQLiteConnection;->dispose(Z)V
5110 :try_end_0
5111 .catchall {:try_start_0 .. :try_end_0} :catchall_0
5112
5113 invoke-super {p0}, Ljava/lang/Object;->finalize()V
5114
5115 return-void
5116
5117 :catchall_0
5118 move-exception v0
5119
5120 invoke-super {p0}, Ljava/lang/Object;->finalize()V
5121
5122 throw v0
5123.end method
5124
5125.method public getConnectionId()I
5126 .locals 1
5127
5128 iget v0, p0, Landroid/database/sqlite/SQLiteConnection;->mConnectionId:I
5129
5130 return v0
5131.end method
5132
5133.method isPreparedStatementInCache(Ljava/lang/String;)Z
5134 .locals 1
5135
5136 iget-object v0, p0, Landroid/database/sqlite/SQLiteConnection;->mPreparedStatementCache:Landroid/database/sqlite/SQLiteConnection$PreparedStatementCache;
5137
5138 invoke-virtual {v0, p1}, Landroid/database/sqlite/SQLiteConnection$PreparedStatementCache;->get(Ljava/lang/Object;)Ljava/lang/Object;
5139
5140 move-result-object v0
5141
5142 if-eqz v0, :cond_0
5143
5144 const/4 v0, 0x1
5145
5146 :goto_0
5147 return v0
5148
5149 :cond_0
5150 const/4 v0, 0x0
5151
5152 goto :goto_0
5153.end method
5154
5155.method public isPrimaryConnection()Z
5156 .locals 1
5157
5158 iget-boolean v0, p0, Landroid/database/sqlite/SQLiteConnection;->mIsPrimaryConnection:Z
5159
5160 return v0
5161.end method
5162
5163.method public onCancel()V
5164 .locals 2
5165
5166 iget-wide v0, p0, Landroid/database/sqlite/SQLiteConnection;->mConnectionPtr:J
5167
5168 invoke-static {v0, v1}, Landroid/database/sqlite/SQLiteConnection;->nativeCancel(J)V
5169
5170 return-void
5171.end method
5172
5173.method public prepare(Ljava/lang/String;Landroid/database/sqlite/SQLiteStatementInfo;)V
5174 .locals 10
5175
5176 const/4 v7, 0x0
5177
5178 if-nez p1, :cond_0
5179
5180 new-instance v5, Ljava/lang/IllegalArgumentException;
5181
5182 const-string/jumbo v6, "sql must not be null."
5183
5184 invoke-direct {v5, v6}, Ljava/lang/IllegalArgumentException;-><init>(Ljava/lang/String;)V
5185
5186 throw v5
5187
5188 :cond_0
5189 iget-object v5, p0, Landroid/database/sqlite/SQLiteConnection;->mRecentOperations:Landroid/database/sqlite/SQLiteConnection$OperationLog;
5190
5191 const-string/jumbo v6, "prepare"
5192
5193 invoke-virtual {v5, v6, p1, v7}, Landroid/database/sqlite/SQLiteConnection$OperationLog;->beginOperation(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/Object;)I
5194
5195 move-result v1
5196
5197 :try_start_0
5198 invoke-direct {p0, p1}, Landroid/database/sqlite/SQLiteConnection;->acquirePreparedStatement(Ljava/lang/String;)Landroid/database/sqlite/SQLiteConnection$PreparedStatement;
5199 :try_end_0
5200 .catch Ljava/lang/RuntimeException; {:try_start_0 .. :try_end_0} :catch_0
5201 .catchall {:try_start_0 .. :try_end_0} :catchall_1
5202
5203 move-result-object v4
5204
5205 if-eqz p2, :cond_1
5206
5207 :try_start_1
5208 iget v5, v4, Landroid/database/sqlite/SQLiteConnection$PreparedStatement;->mNumParameters:I
5209
5210 iput v5, p2, Landroid/database/sqlite/SQLiteStatementInfo;->numParameters:I
5211
5212 iget-boolean v5, v4, Landroid/database/sqlite/SQLiteConnection$PreparedStatement;->mReadOnly:Z
5213
5214 iput-boolean v5, p2, Landroid/database/sqlite/SQLiteStatementInfo;->readOnly:Z
5215
5216 iget-wide v6, p0, Landroid/database/sqlite/SQLiteConnection;->mConnectionPtr:J
5217
5218 iget-wide v8, v4, Landroid/database/sqlite/SQLiteConnection$PreparedStatement;->mStatementPtr:J
5219
5220 invoke-static {v6, v7, v8, v9}, Landroid/database/sqlite/SQLiteConnection;->nativeGetColumnCount(JJ)I
5221
5222 move-result v0
5223
5224 if-nez v0, :cond_3
5225
5226 sget-object v5, Landroid/database/sqlite/SQLiteConnection;->EMPTY_STRING_ARRAY:[Ljava/lang/String;
5227
5228 iput-object v5, p2, Landroid/database/sqlite/SQLiteStatementInfo;->columnNames:[Ljava/lang/String;
5229 :try_end_1
5230 .catchall {:try_start_1 .. :try_end_1} :catchall_0
5231
5232 :cond_1
5233 :try_start_2
5234 invoke-direct {p0, v4}, Landroid/database/sqlite/SQLiteConnection;->releasePreparedStatement(Landroid/database/sqlite/SQLiteConnection$PreparedStatement;)V
5235 :try_end_2
5236 .catch Ljava/lang/RuntimeException; {:try_start_2 .. :try_end_2} :catch_0
5237 .catchall {:try_start_2 .. :try_end_2} :catchall_1
5238
5239 iget-object v5, p0, Landroid/database/sqlite/SQLiteConnection;->mRecentOperations:Landroid/database/sqlite/SQLiteConnection$OperationLog;
5240
5241 invoke-virtual {v5, v1}, Landroid/database/sqlite/SQLiteConnection$OperationLog;->endOperationDeferLog(I)Z
5242
5243 move-result v5
5244
5245 if-eqz v5, :cond_2
5246
5247 iget-object v5, p0, Landroid/database/sqlite/SQLiteConnection;->mRecentOperations:Landroid/database/sqlite/SQLiteConnection$OperationLog;
5248
5249 new-instance v6, Ljava/lang/StringBuilder;
5250
5251 invoke-direct {v6}, Ljava/lang/StringBuilder;-><init>()V
5252
5253 const-string/jumbo v7, "window=\'"
5254
5255 invoke-virtual {v6, v7}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
5256
5257 move-result-object v6
5258
5259 iget-object v7, p0, Landroid/database/sqlite/SQLiteConnection;->mConfiguration:Landroid/database/sqlite/SQLiteDatabaseConfiguration;
5260
5261 iget-object v7, v7, Landroid/database/sqlite/SQLiteDatabaseConfiguration;->path:Ljava/lang/String;
5262
5263 invoke-virtual {v6, v7}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
5264
5265 move-result-object v6
5266
5267 const-string/jumbo v7, "\'"
5268
5269 invoke-virtual {v6, v7}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
5270
5271 move-result-object v6
5272
5273 invoke-virtual {v6}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
5274
5275 move-result-object v6
5276
5277 invoke-virtual {v5, v1, v6}, Landroid/database/sqlite/SQLiteConnection$OperationLog;->logOperation(ILjava/lang/String;)V
5278
5279 :cond_2
5280 return-void
5281
5282 :cond_3
5283 :try_start_3
5284 new-array v5, v0, [Ljava/lang/String;
5285
5286 iput-object v5, p2, Landroid/database/sqlite/SQLiteStatementInfo;->columnNames:[Ljava/lang/String;
5287
5288 const/4 v3, 0x0
5289
5290 :goto_0
5291 if-ge v3, v0, :cond_1
5292
5293 iget-object v5, p2, Landroid/database/sqlite/SQLiteStatementInfo;->columnNames:[Ljava/lang/String;
5294
5295 iget-wide v6, p0, Landroid/database/sqlite/SQLiteConnection;->mConnectionPtr:J
5296
5297 iget-wide v8, v4, Landroid/database/sqlite/SQLiteConnection$PreparedStatement;->mStatementPtr:J
5298
5299 invoke-static {v6, v7, v8, v9, v3}, Landroid/database/sqlite/SQLiteConnection;->nativeGetColumnName(JJI)Ljava/lang/String;
5300
5301 move-result-object v6
5302
5303 aput-object v6, v5, v3
5304 :try_end_3
5305 .catchall {:try_start_3 .. :try_end_3} :catchall_0
5306
5307 add-int/lit8 v3, v3, 0x1
5308
5309 goto :goto_0
5310
5311 :catchall_0
5312 move-exception v5
5313
5314 :try_start_4
5315 invoke-direct {p0, v4}, Landroid/database/sqlite/SQLiteConnection;->releasePreparedStatement(Landroid/database/sqlite/SQLiteConnection$PreparedStatement;)V
5316
5317 throw v5
5318 :try_end_4
5319 .catch Ljava/lang/RuntimeException; {:try_start_4 .. :try_end_4} :catch_0
5320 .catchall {:try_start_4 .. :try_end_4} :catchall_1
5321
5322 :catch_0
5323 move-exception v2
5324
5325 :try_start_5
5326 iget-object v5, p0, Landroid/database/sqlite/SQLiteConnection;->mRecentOperations:Landroid/database/sqlite/SQLiteConnection$OperationLog;
5327
5328 invoke-virtual {v5, v1, v2}, Landroid/database/sqlite/SQLiteConnection$OperationLog;->failOperation(ILjava/lang/Exception;)V
5329
5330 throw v2
5331 :try_end_5
5332 .catchall {:try_start_5 .. :try_end_5} :catchall_1
5333
5334 :catchall_1
5335 move-exception v5
5336
5337 iget-object v6, p0, Landroid/database/sqlite/SQLiteConnection;->mRecentOperations:Landroid/database/sqlite/SQLiteConnection$OperationLog;
5338
5339 invoke-virtual {v6, v1}, Landroid/database/sqlite/SQLiteConnection$OperationLog;->endOperationDeferLog(I)Z
5340
5341 move-result v6
5342
5343 if-eqz v6, :cond_4
5344
5345 iget-object v6, p0, Landroid/database/sqlite/SQLiteConnection;->mRecentOperations:Landroid/database/sqlite/SQLiteConnection$OperationLog;
5346
5347 new-instance v7, Ljava/lang/StringBuilder;
5348
5349 invoke-direct {v7}, Ljava/lang/StringBuilder;-><init>()V
5350
5351 const-string/jumbo v8, "window=\'"
5352
5353 invoke-virtual {v7, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
5354
5355 move-result-object v7
5356
5357 iget-object v8, p0, Landroid/database/sqlite/SQLiteConnection;->mConfiguration:Landroid/database/sqlite/SQLiteDatabaseConfiguration;
5358
5359 iget-object v8, v8, Landroid/database/sqlite/SQLiteDatabaseConfiguration;->path:Ljava/lang/String;
5360
5361 invoke-virtual {v7, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
5362
5363 move-result-object v7
5364
5365 const-string/jumbo v8, "\'"
5366
5367 invoke-virtual {v7, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
5368
5369 move-result-object v7
5370
5371 invoke-virtual {v7}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
5372
5373 move-result-object v7
5374
5375 invoke-virtual {v6, v1, v7}, Landroid/database/sqlite/SQLiteConnection$OperationLog;->logOperation(ILjava/lang/String;)V
5376
5377 :cond_4
5378 throw v5
5379.end method
5380
5381.method reconfigure(Landroid/database/sqlite/SQLiteDatabaseConfiguration;)V
5382 .locals 14
5383
5384 const/4 v10, 0x0
5385
5386 iput-boolean v10, p0, Landroid/database/sqlite/SQLiteConnection;->mOnlyAllowReadOnlyOperations:Z
5387
5388 iget-object v10, p1, Landroid/database/sqlite/SQLiteDatabaseConfiguration;->customFunctions:Ljava/util/ArrayList;
5389
5390 invoke-virtual {v10}, Ljava/util/ArrayList;->size()I
5391
5392 move-result v6
5393
5394 const/4 v7, 0x0
5395
5396 :goto_0
5397 if-ge v7, v6, :cond_1
5398
5399 iget-object v10, p1, Landroid/database/sqlite/SQLiteDatabaseConfiguration;->customFunctions:Ljava/util/ArrayList;
5400
5401 invoke-virtual {v10, v7}, Ljava/util/ArrayList;->get(I)Ljava/lang/Object;
5402
5403 move-result-object v5
5404
5405 check-cast v5, Landroid/database/sqlite/SQLiteCustomFunction;
5406
5407 iget-object v10, p0, Landroid/database/sqlite/SQLiteConnection;->mConfiguration:Landroid/database/sqlite/SQLiteDatabaseConfiguration;
5408
5409 iget-object v10, v10, Landroid/database/sqlite/SQLiteDatabaseConfiguration;->customFunctions:Ljava/util/ArrayList;
5410
5411 invoke-virtual {v10, v5}, Ljava/util/ArrayList;->contains(Ljava/lang/Object;)Z
5412
5413 move-result v10
5414
5415 if-nez v10, :cond_0
5416
5417 iget-wide v10, p0, Landroid/database/sqlite/SQLiteConnection;->mConnectionPtr:J
5418
5419 invoke-static {v10, v11, v5}, Landroid/database/sqlite/SQLiteConnection;->nativeRegisterCustomFunction(JLandroid/database/sqlite/SQLiteCustomFunction;)V
5420
5421 :cond_0
5422 add-int/lit8 v7, v7, 0x1
5423
5424 goto :goto_0
5425
5426 :cond_1
5427 iget-boolean v10, p1, Landroid/database/sqlite/SQLiteDatabaseConfiguration;->foreignKeyConstraintsEnabled:Z
5428
5429 iget-object v11, p0, Landroid/database/sqlite/SQLiteConnection;->mConfiguration:Landroid/database/sqlite/SQLiteDatabaseConfiguration;
5430
5431 iget-boolean v11, v11, Landroid/database/sqlite/SQLiteDatabaseConfiguration;->foreignKeyConstraintsEnabled:Z
5432
5433 if-eq v10, v11, :cond_9
5434
5435 const/4 v4, 0x1
5436
5437 :goto_1
5438 iget v10, p1, Landroid/database/sqlite/SQLiteDatabaseConfiguration;->openFlags:I
5439
5440 iget-object v11, p0, Landroid/database/sqlite/SQLiteConnection;->mConfiguration:Landroid/database/sqlite/SQLiteDatabaseConfiguration;
5441
5442 iget v11, v11, Landroid/database/sqlite/SQLiteDatabaseConfiguration;->openFlags:I
5443
5444 xor-int/2addr v10, v11
5445
5446 const/high16 v11, 0x20000000
5447
5448 and-int/2addr v10, v11
5449
5450 if-eqz v10, :cond_a
5451
5452 const/4 v9, 0x1
5453
5454 :goto_2
5455 iget-object v10, p1, Landroid/database/sqlite/SQLiteDatabaseConfiguration;->locale:Ljava/util/Locale;
5456
5457 iget-object v11, p0, Landroid/database/sqlite/SQLiteConnection;->mConfiguration:Landroid/database/sqlite/SQLiteDatabaseConfiguration;
5458
5459 iget-object v11, v11, Landroid/database/sqlite/SQLiteDatabaseConfiguration;->locale:Ljava/util/Locale;
5460
5461 invoke-virtual {v10, v11}, Ljava/util/Locale;->equals(Ljava/lang/Object;)Z
5462
5463 move-result v10
5464
5465 xor-int/lit8 v8, v10, 0x1
5466
5467 iget-boolean v10, p1, Landroid/database/sqlite/SQLiteDatabaseConfiguration;->automaticIndexEnabled:Z
5468
5469 iget-object v11, p0, Landroid/database/sqlite/SQLiteConnection;->mConfiguration:Landroid/database/sqlite/SQLiteDatabaseConfiguration;
5470
5471 iget-boolean v11, v11, Landroid/database/sqlite/SQLiteDatabaseConfiguration;->automaticIndexEnabled:Z
5472
5473 if-eq v10, v11, :cond_b
5474
5475 const/4 v0, 0x1
5476
5477 :goto_3
5478 iget-wide v10, p1, Landroid/database/sqlite/SQLiteDatabaseConfiguration;->busyTimeout:J
5479
5480 iget-object v12, p0, Landroid/database/sqlite/SQLiteConnection;->mConfiguration:Landroid/database/sqlite/SQLiteDatabaseConfiguration;
5481
5482 iget-wide v12, v12, Landroid/database/sqlite/SQLiteDatabaseConfiguration;->busyTimeout:J
5483
5484 cmp-long v10, v10, v12
5485
5486 if-eqz v10, :cond_c
5487
5488 const/4 v1, 0x1
5489
5490 :goto_4
5491 iget v10, p1, Landroid/database/sqlite/SQLiteDatabaseConfiguration;->cacheSize:I
5492
5493 iget-object v11, p0, Landroid/database/sqlite/SQLiteConnection;->mConfiguration:Landroid/database/sqlite/SQLiteDatabaseConfiguration;
5494
5495 iget v11, v11, Landroid/database/sqlite/SQLiteDatabaseConfiguration;->cacheSize:I
5496
5497 if-eq v10, v11, :cond_d
5498
5499 const/4 v2, 0x1
5500
5501 :goto_5
5502 iget-boolean v10, p1, Landroid/database/sqlite/SQLiteDatabaseConfiguration;->caseSensitiveLikeEnabled:Z
5503
5504 iget-object v11, p0, Landroid/database/sqlite/SQLiteConnection;->mConfiguration:Landroid/database/sqlite/SQLiteDatabaseConfiguration;
5505
5506 iget-boolean v11, v11, Landroid/database/sqlite/SQLiteDatabaseConfiguration;->caseSensitiveLikeEnabled:Z
5507
5508 if-eq v10, v11, :cond_e
5509
5510 const/4 v3, 0x1
5511
5512 :goto_6
5513 iget-object v10, p0, Landroid/database/sqlite/SQLiteConnection;->mConfiguration:Landroid/database/sqlite/SQLiteDatabaseConfiguration;
5514
5515 invoke-virtual {v10, p1}, Landroid/database/sqlite/SQLiteDatabaseConfiguration;->updateParametersFrom(Landroid/database/sqlite/SQLiteDatabaseConfiguration;)V
5516
5517 iget-object v10, p0, Landroid/database/sqlite/SQLiteConnection;->mPreparedStatementCache:Landroid/database/sqlite/SQLiteConnection$PreparedStatementCache;
5518
5519 iget v11, p1, Landroid/database/sqlite/SQLiteDatabaseConfiguration;->maxSqlCacheSize:I
5520
5521 invoke-virtual {v10, v11}, Landroid/database/sqlite/SQLiteConnection$PreparedStatementCache;->resize(I)V
5522
5523 if-eqz v4, :cond_2
5524
5525 invoke-direct {p0}, Landroid/database/sqlite/SQLiteConnection;->setForeignKeyModeFromConfiguration()V
5526
5527 :cond_2
5528 if-eqz v9, :cond_3
5529
5530 invoke-direct {p0}, Landroid/database/sqlite/SQLiteConnection;->setWalModeFromConfiguration()V
5531
5532 :cond_3
5533 if-eqz v8, :cond_4
5534
5535 invoke-direct {p0}, Landroid/database/sqlite/SQLiteConnection;->setLocaleFromConfiguration()V
5536
5537 :cond_4
5538 if-eqz v0, :cond_5
5539
5540 invoke-direct {p0}, Landroid/database/sqlite/SQLiteConnection;->setAutomaticIndexFromConfiguration()V
5541
5542 :cond_5
5543 if-eqz v1, :cond_6
5544
5545 invoke-direct {p0}, Landroid/database/sqlite/SQLiteConnection;->setBusyTimeoutFromConfiguration()V
5546
5547 :cond_6
5548 if-eqz v2, :cond_7
5549
5550 invoke-direct {p0}, Landroid/database/sqlite/SQLiteConnection;->setCacheSizeFromConfiguration()V
5551
5552 :cond_7
5553 if-eqz v3, :cond_8
5554
5555 invoke-direct {p0}, Landroid/database/sqlite/SQLiteConnection;->setCaseSensitiveLikeFromConfiguration()V
5556
5557 :cond_8
5558 return-void
5559
5560 :cond_9
5561 const/4 v4, 0x0
5562
5563 goto :goto_1
5564
5565 :cond_a
5566 const/4 v9, 0x0
5567
5568 goto :goto_2
5569
5570 :cond_b
5571 const/4 v0, 0x0
5572
5573 goto :goto_3
5574
5575 :cond_c
5576 const/4 v1, 0x0
5577
5578 goto :goto_4
5579
5580 :cond_d
5581 const/4 v2, 0x0
5582
5583 goto :goto_5
5584
5585 :cond_e
5586 const/4 v3, 0x0
5587
5588 goto :goto_6
5589.end method
5590
5591.method setOnlyAllowReadOnlyOperations(Z)V
5592 .locals 0
5593
5594 iput-boolean p1, p0, Landroid/database/sqlite/SQLiteConnection;->mOnlyAllowReadOnlyOperations:Z
5595
5596 return-void
5597.end method
5598
5599.method public setPassword([B)[B
5600 .locals 2
5601
5602 iget-wide v0, p0, Landroid/database/sqlite/SQLiteConnection;->mConnectionPtr:J
5603
5604 invoke-static {v0, v1, p1}, Landroid/database/sqlite/SQLiteConnection;->nativeSetPassword(J[B)[B
5605
5606 move-result-object v0
5607
5608 return-object v0
5609.end method
5610
5611.method public toString()Ljava/lang/String;
5612 .locals 2
5613
5614 new-instance v0, Ljava/lang/StringBuilder;
5615
5616 invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
5617
5618 const-string/jumbo v1, "SQLiteConnection: "
5619
5620 invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
5621
5622 move-result-object v0
5623
5624 iget-object v1, p0, Landroid/database/sqlite/SQLiteConnection;->mConfiguration:Landroid/database/sqlite/SQLiteDatabaseConfiguration;
5625
5626 iget-object v1, v1, Landroid/database/sqlite/SQLiteDatabaseConfiguration;->path:Ljava/lang/String;
5627
5628 invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
5629
5630 move-result-object v0
5631
5632 const-string/jumbo v1, " ("
5633
5634 invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
5635
5636 move-result-object v0
5637
5638 iget v1, p0, Landroid/database/sqlite/SQLiteConnection;->mConnectionId:I
5639
5640 invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
5641
5642 move-result-object v0
5643
5644 const-string/jumbo v1, ")"
5645
5646 invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
5647
5648 move-result-object v0
5649
5650 invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
5651
5652 move-result-object v0
5653
5654 return-object v0
5655.end method