Init the static member when first used for CursorWindow.
As the CursorWindow will be preloaded by zygote, and there is one static member need use the system resource to initialize. But actually the zygote do not preload the resource now. (In fact, the zygote will preload classes first, then preload the resource.) We need ensure the zygote to create the system resource first. So change to init this static member as -1, and it will be evaluated when first used. Change-Id: Ibccb84e3c410c73788ac682fe76b720306e81dc4
This commit is contained in:
@@ -42,12 +42,8 @@ import android.util.LongSparseArray;
|
||||
public class CursorWindow extends SQLiteClosable implements Parcelable {
|
||||
private static final String STATS_TAG = "CursorWindowStats";
|
||||
|
||||
/** The cursor window size. resource xml file specifies the value in kB.
|
||||
* convert it to bytes here by multiplying with 1024.
|
||||
*/
|
||||
private static final int sCursorWindowSize =
|
||||
Resources.getSystem().getInteger(
|
||||
com.android.internal.R.integer.config_cursorWindowSize) * 1024;
|
||||
// This static member will be evaluated when first used.
|
||||
private static int sCursorWindowSize = -1;
|
||||
|
||||
/**
|
||||
* The native CursorWindow object pointer. (FOR INTERNAL USE ONLY)
|
||||
@@ -100,6 +96,13 @@ public class CursorWindow extends SQLiteClosable implements Parcelable {
|
||||
public CursorWindow(String name) {
|
||||
mStartPos = 0;
|
||||
mName = name != null && name.length() != 0 ? name : "<unnamed>";
|
||||
if (sCursorWindowSize < 0) {
|
||||
/** The cursor window size. resource xml file specifies the value in kB.
|
||||
* convert it to bytes here by multiplying with 1024.
|
||||
*/
|
||||
sCursorWindowSize = Resources.getSystem().getInteger(
|
||||
com.android.internal.R.integer.config_cursorWindowSize) * 1024;
|
||||
}
|
||||
mWindowPtr = nativeCreate(mName, sCursorWindowSize);
|
||||
if (mWindowPtr == 0) {
|
||||
throw new CursorWindowAllocationException("Cursor window allocation of " +
|
||||
|
||||
Reference in New Issue
Block a user