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

Commit e1e6c661 authored by Tim Murray's avatar Tim Murray
Browse files

Move cache dir to its own class.

This prevents us from loading the RS static initializer all the time.

Change-Id: I8cea7540e50251aba8c2f199f06f344f991e7d7f
parent d95e58cb
Loading
Loading
Loading
Loading
+12 −12
Original line number Diff line number Diff line
@@ -97,7 +97,7 @@ import android.view.ViewRootImpl;
import android.view.Window;
import android.view.WindowManager;
import android.view.WindowManagerGlobal;
import android.renderscript.RenderScript;
import android.renderscript.RenderScriptCacheDir;
import android.security.AndroidKeyStoreProvider;

import com.android.internal.app.IVoiceInteractor;
@@ -4297,7 +4297,7 @@ public final class ActivityThread {
            // initialize the graphics disk caches
            if (packages != null && packages.length == 1) {
                HardwareRenderer.setupDiskCache(cacheDir);
                RenderScript.setupDiskCache(cacheDir);
                RenderScriptCacheDir.setupDiskCache(cacheDir);
            }
        } catch (RemoteException e) {
            // Ignore
+0 −20
Original line number Diff line number Diff line
@@ -16,7 +16,6 @@

package android.renderscript;

import java.io.File;
import java.lang.reflect.Method;
import java.util.concurrent.locks.ReentrantReadWriteLock;

@@ -130,8 +129,6 @@ public class RenderScript {
    native void nContextInitToClient(long con);
    native void nContextDeinitToClient(long con);

    static File mCacheDir;

    // this should be a monotonically increasing ID
    // used in conjunction with the API version of a device
    static final long sMinorID = 1;
@@ -146,23 +143,6 @@ public class RenderScript {
        return sMinorID;
    }

     /**
     * Sets the directory to use as a persistent storage for the
     * renderscript object file cache.
     *
     * @hide
     * @param cacheDir A directory the current process can write to
     */
    public static void setupDiskCache(File cacheDir) {
        if (!sInitialized) {
            Log.e(LOG_TAG, "RenderScript.setupDiskCache() called when disabled");
            return;
        }

        // Defer creation of cache path to nScriptCCreate().
        mCacheDir = cacheDir;
    }

    /**
     * ContextType specifies the specific type of context to be created.
     *
+40 −0
Original line number Diff line number Diff line
/*
 * Copyright (C) 2008-2015 The Android Open Source Project
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package android.renderscript;

import java.io.File;

/**
 * Used only for tracking the RenderScript cache directory.
 * @hide
 */
public class RenderScriptCacheDir {
     /**
     * Sets the directory to use as a persistent storage for the
     * renderscript object file cache.
     *
     * @hide
     * @param cacheDir A directory the current process can write to
     */
    public static void setupDiskCache(File cacheDir) {
        // Defer creation of cache path to nScriptCCreate().
        mCacheDir = cacheDir;
    }

    static File mCacheDir;

}
+2 −2
Original line number Diff line number Diff line
@@ -124,7 +124,7 @@ public class ScriptC extends Script {

        // Create the RS cache path if we haven't done so already.
        if (mCachePath == null) {
            File f = new File(rs.mCacheDir, CACHE_PATH);
            File f = new File(RenderScriptCacheDir.mCacheDir, CACHE_PATH);
            mCachePath = f.getAbsolutePath();
            f.mkdirs();
        }
@@ -135,7 +135,7 @@ public class ScriptC extends Script {
    private static synchronized long internalStringCreate(RenderScript rs, String resName, byte[] bitcode) {
        // Create the RS cache path if we haven't done so already.
        if (mCachePath == null) {
            File f = new File(rs.mCacheDir, CACHE_PATH);
            File f = new File(RenderScriptCacheDir.mCacheDir, CACHE_PATH);
            mCachePath = f.getAbsolutePath();
            f.mkdirs();
        }