Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 5274e84e authored by Vasu Nori's avatar Vasu Nori
Browse files

Revert "bug:2448371 cursorwindow size moved to resource xml file."

This reverts commit 2594bae1.
parent 6551a2d0
Loading
Loading
Loading
Loading
+2 −10
Original line number Diff line number Diff line
@@ -16,7 +16,6 @@

package android.database;

import android.content.res.Resources;
import android.database.sqlite.SQLiteClosable;
import android.os.IBinder;
import android.os.Parcel;
@@ -26,13 +25,6 @@ import android.os.Parcelable;
 * A buffer containing multiple cursor rows.
 */
public class CursorWindow extends SQLiteClosable implements Parcelable {
    /** 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;

    /** The pointer to the native window class */
    @SuppressWarnings("unused")
    private int nWindow;
@@ -46,7 +38,7 @@ public class CursorWindow extends SQLiteClosable implements Parcelable {
     */
    public CursorWindow(boolean localWindow) {
        mStartPos = 0;
        native_init(sCursorWindowSize, localWindow);
        native_init(localWindow);
    }

    /**
@@ -582,7 +574,7 @@ public class CursorWindow extends SQLiteClosable implements Parcelable {
    private native IBinder native_getBinder();

    /** Does the native side initialization for an empty window */
    private native void native_init(int cursorWindowSize, boolean localOnly);
    private native void native_init(boolean localOnly);

    /** Does the native side initialization with an existing binder from another process */
    private native void native_init(IBinder nativeBinder);
+0 −19
Original line number Diff line number Diff line
@@ -18,7 +18,6 @@ package android.database.sqlite;

import android.app.AppGlobals;
import android.content.ContentValues;
import android.content.res.Resources;
import android.database.Cursor;
import android.database.DatabaseErrorHandler;
import android.database.DatabaseUtils;
@@ -2671,22 +2670,4 @@ public class SQLiteDatabase extends SQLiteClosable {
     * @param statementId statement to be finzlied by sqlite
     */
    private final native void native_finalize(int statementId);

    /**
     * set sqlite soft heap limit
     * http://www.sqlite.org/c3ref/soft_heap_limit64.html
     */

    /** sqlite soft heap limit http://www.sqlite.org/c3ref/soft_heap_limit64.html
     * set it to 4 times the default cursor window size.
     * TODO what is an appropriate value, considring the WAL feature which could burn
     * a lot of memory with many connections to the database. needs testing to figure out
     * optimal value for this.
     */
    static {
        int limit = Resources.getSystem().getInteger(
                com.android.internal.R.integer.config_cursorWindowSize) * 1024 * 4;
        native_setSqliteSoftHeapLimit(limit);
    }
    private final static native void native_setSqliteSoftHeapLimit(int softHeapLimit);
}
+3 −4
Original line number Diff line number Diff line
@@ -50,14 +50,13 @@ CursorWindow * get_window_from_object(JNIEnv * env, jobject javaWindow)
    return GET_WINDOW(env, javaWindow);
}

static void native_init_empty(JNIEnv * env, jobject object, jint cursorWindowSize,
        jboolean localOnly)
static void native_init_empty(JNIEnv * env, jobject object, jboolean localOnly)
{
    uint8_t * data;
    size_t size;
    CursorWindow * window;

    window = new CursorWindow(cursorWindowSize);
    window = new CursorWindow(MAX_WINDOW_SIZE);
    if (!window) {
        jniThrowException(env, "java/lang/RuntimeException", "No memory for native window object");
        return;
@@ -615,7 +614,7 @@ static jint getType_native(JNIEnv* env, jobject object, jint row, jint column)
static JNINativeMethod sMethods[] =
{
     /* name, signature, funcPtr */
    {"native_init", "(IZ)V", (void *)native_init_empty},
    {"native_init", "(Z)V", (void *)native_init_empty},
    {"native_init", "(Landroid/os/IBinder;)V", (void *)native_init_memory},
    {"native_getBinder", "()Landroid/os/IBinder;", (void *)native_getBinder},
    {"native_clear", "()V", (void *)native_clear},
+3 −8
Original line number Diff line number Diff line
@@ -46,6 +46,7 @@

#define UTF16_STORAGE 0
#define INVALID_VERSION -1
#define SQLITE_SOFT_HEAP_LIMIT (4 * 1024 * 1024)
#define ANDROID_TABLE "android_metadata"
/* uncomment the next line to force-enable logging of all statements */
// #define DB_LOG_STATEMENTS
@@ -65,7 +66,6 @@ enum {
static jfieldID offset_db_handle;
static jmethodID method_custom_function_callback;
static jclass string_class = NULL;
static jint sSqliteSoftHeapLimit = 0;

static char *createStr(const char *path, short extra) {
    int len = strlen(path) + extra;
@@ -129,7 +129,7 @@ static void dbopen(JNIEnv* env, jobject object, jstring pathString, jint flags)
    // The soft heap limit prevents the page cache allocations from growing
    // beyond the given limit, no matter what the max page cache sizes are
    // set to. The limit does not, as of 3.5.0, affect any other allocations.
    sqlite3_soft_heap_limit(sSqliteSoftHeapLimit);
    sqlite3_soft_heap_limit(SQLITE_SOFT_HEAP_LIMIT);

    // Set the default busy handler to retry for 1000ms and then return SQLITE_BUSY
    err = sqlite3_busy_timeout(handle, 1000 /* ms */);
@@ -379,14 +379,10 @@ done:
    if (meta != NULL) sqlite3_free_table(meta);
}

static void native_setSqliteSoftHeapLimit(JNIEnv* env, jobject object, jint limit) {
    sSqliteSoftHeapLimit = limit;
}

static jint native_releaseMemory(JNIEnv *env, jobject clazz)
{
    // Attempt to release as much memory from the
    return sqlite3_release_memory(sSqliteSoftHeapLimit);
    return sqlite3_release_memory(SQLITE_SOFT_HEAP_LIMIT);
}

static void native_finalize(JNIEnv* env, jobject object, jint statementId)
@@ -470,7 +466,6 @@ static JNINativeMethod sMethods[] =
    {"enableSqlProfiling", "(Ljava/lang/String;S)V", (void *)enableSqlProfiling},
    {"native_setLocale", "(Ljava/lang/String;I)V", (void *)native_setLocale},
    {"native_getDbLookaside", "()I", (void *)native_getDbLookaside},
    {"native_setSqliteSoftHeapLimit", "(I)V", (void *)native_setSqliteSoftHeapLimit},
    {"releaseMemory", "()I", (void *)native_releaseMemory},
    {"native_finalize", "(I)V", (void *)native_finalize},
    {"native_addCustomFunction",
+0 −3
Original line number Diff line number Diff line
@@ -515,7 +515,4 @@
         Build.MODEL. The format string shall not be escaped. -->
    <string name="config_useragentprofile_url"></string>

    <!-- When a database query is executed, the results retuned are paginated
         in pages of size (in KB) indicated by this value -->
    <integer name="config_cursorWindowSize">2048</integer>
</resources>
Loading