am 651807fc: am 3f589e5d: am 2842bd02: am de8c3cf1: Merge "AArch64: Use long for pointers in App/Backup"
* commit '651807fcd0b1012ea848efe5f67b4381d8ce6797': AArch64: Use long for pointers in App/Backup
This commit is contained in:
@@ -76,7 +76,7 @@ public class NativeActivity extends Activity implements SurfaceHolder.Callback2,
|
||||
private NativeContentView mNativeContentView;
|
||||
private InputMethodManager mIMM;
|
||||
|
||||
private int mNativeHandle;
|
||||
private long mNativeHandle;
|
||||
|
||||
private InputQueue mCurInputQueue;
|
||||
private SurfaceHolder mCurSurfaceHolder;
|
||||
@@ -91,27 +91,26 @@ public class NativeActivity extends Activity implements SurfaceHolder.Callback2,
|
||||
|
||||
private boolean mDestroyed;
|
||||
|
||||
private native int loadNativeCode(String path, String funcname, MessageQueue queue,
|
||||
private native long loadNativeCode(String path, String funcname, MessageQueue queue,
|
||||
String internalDataPath, String obbPath, String externalDataPath, int sdkVersion,
|
||||
AssetManager assetMgr, byte[] savedState);
|
||||
private native void unloadNativeCode(int handle);
|
||||
|
||||
private native void onStartNative(int handle);
|
||||
private native void onResumeNative(int handle);
|
||||
private native byte[] onSaveInstanceStateNative(int handle);
|
||||
private native void onPauseNative(int handle);
|
||||
private native void onStopNative(int handle);
|
||||
private native void onConfigurationChangedNative(int handle);
|
||||
private native void onLowMemoryNative(int handle);
|
||||
private native void onWindowFocusChangedNative(int handle, boolean focused);
|
||||
private native void onSurfaceCreatedNative(int handle, Surface surface);
|
||||
private native void onSurfaceChangedNative(int handle, Surface surface,
|
||||
private native void unloadNativeCode(long handle);
|
||||
private native void onStartNative(long handle);
|
||||
private native void onResumeNative(long handle);
|
||||
private native byte[] onSaveInstanceStateNative(long handle);
|
||||
private native void onPauseNative(long handle);
|
||||
private native void onStopNative(long handle);
|
||||
private native void onConfigurationChangedNative(long handle);
|
||||
private native void onLowMemoryNative(long handle);
|
||||
private native void onWindowFocusChangedNative(long handle, boolean focused);
|
||||
private native void onSurfaceCreatedNative(long handle, Surface surface);
|
||||
private native void onSurfaceChangedNative(long handle, Surface surface,
|
||||
int format, int width, int height);
|
||||
private native void onSurfaceRedrawNeededNative(int handle, Surface surface);
|
||||
private native void onSurfaceDestroyedNative(int handle);
|
||||
private native void onInputQueueCreatedNative(int handle, int queuePtr);
|
||||
private native void onInputQueueDestroyedNative(int handle, int queuePtr);
|
||||
private native void onContentRectChangedNative(int handle, int x, int y, int w, int h);
|
||||
private native void onSurfaceRedrawNeededNative(long handle, Surface surface);
|
||||
private native void onSurfaceDestroyedNative(long handle);
|
||||
private native void onInputQueueCreatedNative(long handle, long queuePtr);
|
||||
private native void onInputQueueDestroyedNative(long handle, long queuePtr);
|
||||
private native void onContentRectChangedNative(long handle, int x, int y, int w, int h);
|
||||
|
||||
static class NativeContentView extends View {
|
||||
NativeActivity mActivity;
|
||||
|
||||
@@ -59,7 +59,7 @@ import java.io.IOException;
|
||||
* }</pre>
|
||||
*/
|
||||
public class BackupDataInput {
|
||||
int mBackupReader;
|
||||
long mBackupReader;
|
||||
|
||||
private EntityHeader mHeader = new EntityHeader();
|
||||
private boolean mHeaderReady;
|
||||
@@ -185,10 +185,10 @@ public class BackupDataInput {
|
||||
}
|
||||
}
|
||||
|
||||
private native static int ctor(FileDescriptor fd);
|
||||
private native static void dtor(int mBackupReader);
|
||||
private native static long ctor(FileDescriptor fd);
|
||||
private native static void dtor(long mBackupReader);
|
||||
|
||||
private native int readNextHeader_native(int mBackupReader, EntityHeader entity);
|
||||
private native int readEntityData_native(int mBackupReader, byte[] data, int offset, int size);
|
||||
private native int skipEntityData_native(int mBackupReader);
|
||||
private native int readNextHeader_native(long mBackupReader, EntityHeader entity);
|
||||
private native int readEntityData_native(long mBackupReader, byte[] data, int offset, int size);
|
||||
private native int skipEntityData_native(long mBackupReader);
|
||||
}
|
||||
|
||||
@@ -62,7 +62,7 @@ import java.io.IOException;
|
||||
* @see BackupAgent
|
||||
*/
|
||||
public class BackupDataOutput {
|
||||
int mBackupWriter;
|
||||
long mBackupWriter;
|
||||
|
||||
/** @hide */
|
||||
public BackupDataOutput(FileDescriptor fd) {
|
||||
@@ -121,11 +121,11 @@ public class BackupDataOutput {
|
||||
}
|
||||
}
|
||||
|
||||
private native static int ctor(FileDescriptor fd);
|
||||
private native static void dtor(int mBackupWriter);
|
||||
private native static long ctor(FileDescriptor fd);
|
||||
private native static void dtor(long mBackupWriter);
|
||||
|
||||
private native static int writeEntityHeader_native(int mBackupWriter, String key, int dataSize);
|
||||
private native static int writeEntityData_native(int mBackupWriter, byte[] data, int size);
|
||||
private native static void setKeyPrefix_native(int mBackupWriter, String keyPrefix);
|
||||
private native static int writeEntityHeader_native(long mBackupWriter, String key, int dataSize);
|
||||
private native static int writeEntityData_native(long mBackupWriter, byte[] data, int size);
|
||||
private native static void setKeyPrefix_native(long mBackupWriter, String keyPrefix);
|
||||
}
|
||||
|
||||
|
||||
@@ -29,7 +29,7 @@ import java.io.FileDescriptor;
|
||||
class FileBackupHelperBase {
|
||||
private static final String TAG = "FileBackupHelperBase";
|
||||
|
||||
int mPtr;
|
||||
long mPtr;
|
||||
Context mContext;
|
||||
boolean mExceptionLogged;
|
||||
|
||||
@@ -115,14 +115,13 @@ class FileBackupHelperBase {
|
||||
return false;
|
||||
}
|
||||
|
||||
private static native int ctor();
|
||||
private static native void dtor(int ptr);
|
||||
private static native long ctor();
|
||||
private static native void dtor(long ptr);
|
||||
|
||||
native private static int performBackup_native(FileDescriptor oldState,
|
||||
int data, FileDescriptor newState, String[] files, String[] keys);
|
||||
|
||||
private static native int writeFile_native(int ptr, String filename, int backupReader);
|
||||
private static native int writeSnapshot_native(int ptr, FileDescriptor fd);
|
||||
long data, FileDescriptor newState, String[] files, String[] keys);
|
||||
private static native int writeFile_native(long ptr, String filename, long backupReader);
|
||||
private static native int writeSnapshot_native(long ptr, FileDescriptor fd);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -241,10 +241,10 @@ static int mainWorkCallback(int fd, int events, void* data) {
|
||||
|
||||
// ------------------------------------------------------------------------
|
||||
|
||||
static jint
|
||||
static jlong
|
||||
loadNativeCode_native(JNIEnv* env, jobject clazz, jstring path, jstring funcName,
|
||||
jobject messageQueue, jstring internalDataDir, jstring obbDir,
|
||||
jstring externalDataDir, int sdkVersion,
|
||||
jstring externalDataDir, jint sdkVersion,
|
||||
jobject jAssetMgr, jbyteArray savedState)
|
||||
{
|
||||
LOG_TRACE("loadNativeCode_native");
|
||||
@@ -338,11 +338,11 @@ loadNativeCode_native(JNIEnv* env, jobject clazz, jstring path, jstring funcName
|
||||
}
|
||||
}
|
||||
|
||||
return (jint)code;
|
||||
return (jlong)code;
|
||||
}
|
||||
|
||||
static void
|
||||
unloadNativeCode_native(JNIEnv* env, jobject clazz, jint handle)
|
||||
unloadNativeCode_native(JNIEnv* env, jobject clazz, jlong handle)
|
||||
{
|
||||
LOG_TRACE("unloadNativeCode_native");
|
||||
if (handle != 0) {
|
||||
@@ -352,7 +352,7 @@ unloadNativeCode_native(JNIEnv* env, jobject clazz, jint handle)
|
||||
}
|
||||
|
||||
static void
|
||||
onStart_native(JNIEnv* env, jobject clazz, jint handle)
|
||||
onStart_native(JNIEnv* env, jobject clazz, jlong handle)
|
||||
{
|
||||
LOG_TRACE("onStart_native");
|
||||
if (handle != 0) {
|
||||
@@ -364,7 +364,7 @@ onStart_native(JNIEnv* env, jobject clazz, jint handle)
|
||||
}
|
||||
|
||||
static void
|
||||
onResume_native(JNIEnv* env, jobject clazz, jint handle)
|
||||
onResume_native(JNIEnv* env, jobject clazz, jlong handle)
|
||||
{
|
||||
LOG_TRACE("onResume_native");
|
||||
if (handle != 0) {
|
||||
@@ -376,7 +376,7 @@ onResume_native(JNIEnv* env, jobject clazz, jint handle)
|
||||
}
|
||||
|
||||
static jbyteArray
|
||||
onSaveInstanceState_native(JNIEnv* env, jobject clazz, jint handle)
|
||||
onSaveInstanceState_native(JNIEnv* env, jobject clazz, jlong handle)
|
||||
{
|
||||
LOG_TRACE("onSaveInstanceState_native");
|
||||
|
||||
@@ -403,7 +403,7 @@ onSaveInstanceState_native(JNIEnv* env, jobject clazz, jint handle)
|
||||
}
|
||||
|
||||
static void
|
||||
onPause_native(JNIEnv* env, jobject clazz, jint handle)
|
||||
onPause_native(JNIEnv* env, jobject clazz, jlong handle)
|
||||
{
|
||||
LOG_TRACE("onPause_native");
|
||||
if (handle != 0) {
|
||||
@@ -415,7 +415,7 @@ onPause_native(JNIEnv* env, jobject clazz, jint handle)
|
||||
}
|
||||
|
||||
static void
|
||||
onStop_native(JNIEnv* env, jobject clazz, jint handle)
|
||||
onStop_native(JNIEnv* env, jobject clazz, jlong handle)
|
||||
{
|
||||
LOG_TRACE("onStop_native");
|
||||
if (handle != 0) {
|
||||
@@ -427,7 +427,7 @@ onStop_native(JNIEnv* env, jobject clazz, jint handle)
|
||||
}
|
||||
|
||||
static void
|
||||
onConfigurationChanged_native(JNIEnv* env, jobject clazz, jint handle)
|
||||
onConfigurationChanged_native(JNIEnv* env, jobject clazz, jlong handle)
|
||||
{
|
||||
LOG_TRACE("onConfigurationChanged_native");
|
||||
if (handle != 0) {
|
||||
@@ -439,7 +439,7 @@ onConfigurationChanged_native(JNIEnv* env, jobject clazz, jint handle)
|
||||
}
|
||||
|
||||
static void
|
||||
onLowMemory_native(JNIEnv* env, jobject clazz, jint handle)
|
||||
onLowMemory_native(JNIEnv* env, jobject clazz, jlong handle)
|
||||
{
|
||||
LOG_TRACE("onLowMemory_native");
|
||||
if (handle != 0) {
|
||||
@@ -451,7 +451,7 @@ onLowMemory_native(JNIEnv* env, jobject clazz, jint handle)
|
||||
}
|
||||
|
||||
static void
|
||||
onWindowFocusChanged_native(JNIEnv* env, jobject clazz, jint handle, jboolean focused)
|
||||
onWindowFocusChanged_native(JNIEnv* env, jobject clazz, jlong handle, jboolean focused)
|
||||
{
|
||||
LOG_TRACE("onWindowFocusChanged_native");
|
||||
if (handle != 0) {
|
||||
@@ -463,7 +463,7 @@ onWindowFocusChanged_native(JNIEnv* env, jobject clazz, jint handle, jboolean fo
|
||||
}
|
||||
|
||||
static void
|
||||
onSurfaceCreated_native(JNIEnv* env, jobject clazz, jint handle, jobject surface)
|
||||
onSurfaceCreated_native(JNIEnv* env, jobject clazz, jlong handle, jobject surface)
|
||||
{
|
||||
LOG_TRACE("onSurfaceCreated_native");
|
||||
if (handle != 0) {
|
||||
@@ -483,7 +483,7 @@ static int32_t getWindowProp(ANativeWindow* window, int what) {
|
||||
}
|
||||
|
||||
static void
|
||||
onSurfaceChanged_native(JNIEnv* env, jobject clazz, jint handle, jobject surface,
|
||||
onSurfaceChanged_native(JNIEnv* env, jobject clazz, jlong handle, jobject surface,
|
||||
jint format, jint width, jint height)
|
||||
{
|
||||
LOG_TRACE("onSurfaceChanged_native");
|
||||
@@ -524,7 +524,7 @@ onSurfaceChanged_native(JNIEnv* env, jobject clazz, jint handle, jobject surface
|
||||
}
|
||||
|
||||
static void
|
||||
onSurfaceRedrawNeeded_native(JNIEnv* env, jobject clazz, jint handle)
|
||||
onSurfaceRedrawNeeded_native(JNIEnv* env, jobject clazz, jlong handle)
|
||||
{
|
||||
LOG_TRACE("onSurfaceRedrawNeeded_native");
|
||||
if (handle != 0) {
|
||||
@@ -536,7 +536,7 @@ onSurfaceRedrawNeeded_native(JNIEnv* env, jobject clazz, jint handle)
|
||||
}
|
||||
|
||||
static void
|
||||
onSurfaceDestroyed_native(JNIEnv* env, jobject clazz, jint handle, jobject surface)
|
||||
onSurfaceDestroyed_native(JNIEnv* env, jobject clazz, jlong handle, jobject surface)
|
||||
{
|
||||
LOG_TRACE("onSurfaceDestroyed_native");
|
||||
if (handle != 0) {
|
||||
@@ -550,7 +550,7 @@ onSurfaceDestroyed_native(JNIEnv* env, jobject clazz, jint handle, jobject surfa
|
||||
}
|
||||
|
||||
static void
|
||||
onInputQueueCreated_native(JNIEnv* env, jobject clazz, jint handle, jint queuePtr)
|
||||
onInputQueueCreated_native(JNIEnv* env, jobject clazz, jlong handle, jlong queuePtr)
|
||||
{
|
||||
LOG_TRACE("onInputChannelCreated_native");
|
||||
if (handle != 0) {
|
||||
@@ -563,7 +563,7 @@ onInputQueueCreated_native(JNIEnv* env, jobject clazz, jint handle, jint queuePt
|
||||
}
|
||||
|
||||
static void
|
||||
onInputQueueDestroyed_native(JNIEnv* env, jobject clazz, jint handle, jint queuePtr)
|
||||
onInputQueueDestroyed_native(JNIEnv* env, jobject clazz, jlong handle, jlong queuePtr)
|
||||
{
|
||||
LOG_TRACE("onInputChannelDestroyed_native");
|
||||
if (handle != 0) {
|
||||
@@ -576,7 +576,7 @@ onInputQueueDestroyed_native(JNIEnv* env, jobject clazz, jint handle, jint queue
|
||||
}
|
||||
|
||||
static void
|
||||
onContentRectChanged_native(JNIEnv* env, jobject clazz, jint handle,
|
||||
onContentRectChanged_native(JNIEnv* env, jobject clazz, jlong handle,
|
||||
jint x, jint y, jint w, jint h)
|
||||
{
|
||||
LOG_TRACE("onContentRectChanged_native");
|
||||
@@ -594,26 +594,26 @@ onContentRectChanged_native(JNIEnv* env, jobject clazz, jint handle,
|
||||
}
|
||||
|
||||
static const JNINativeMethod g_methods[] = {
|
||||
{ "loadNativeCode", "(Ljava/lang/String;Ljava/lang/String;Landroid/os/MessageQueue;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILandroid/content/res/AssetManager;[B)I",
|
||||
{ "loadNativeCode", "(Ljava/lang/String;Ljava/lang/String;Landroid/os/MessageQueue;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILandroid/content/res/AssetManager;[B)J",
|
||||
(void*)loadNativeCode_native },
|
||||
{ "unloadNativeCode", "(I)V", (void*)unloadNativeCode_native },
|
||||
{ "onStartNative", "(I)V", (void*)onStart_native },
|
||||
{ "onResumeNative", "(I)V", (void*)onResume_native },
|
||||
{ "onSaveInstanceStateNative", "(I)[B", (void*)onSaveInstanceState_native },
|
||||
{ "onPauseNative", "(I)V", (void*)onPause_native },
|
||||
{ "onStopNative", "(I)V", (void*)onStop_native },
|
||||
{ "onConfigurationChangedNative", "(I)V", (void*)onConfigurationChanged_native },
|
||||
{ "onLowMemoryNative", "(I)V", (void*)onLowMemory_native },
|
||||
{ "onWindowFocusChangedNative", "(IZ)V", (void*)onWindowFocusChanged_native },
|
||||
{ "onSurfaceCreatedNative", "(ILandroid/view/Surface;)V", (void*)onSurfaceCreated_native },
|
||||
{ "onSurfaceChangedNative", "(ILandroid/view/Surface;III)V", (void*)onSurfaceChanged_native },
|
||||
{ "onSurfaceRedrawNeededNative", "(ILandroid/view/Surface;)V", (void*)onSurfaceRedrawNeeded_native },
|
||||
{ "onSurfaceDestroyedNative", "(I)V", (void*)onSurfaceDestroyed_native },
|
||||
{ "onInputQueueCreatedNative", "(II)V",
|
||||
{ "unloadNativeCode", "(J)V", (void*)unloadNativeCode_native },
|
||||
{ "onStartNative", "(J)V", (void*)onStart_native },
|
||||
{ "onResumeNative", "(J)V", (void*)onResume_native },
|
||||
{ "onSaveInstanceStateNative", "(J)[B", (void*)onSaveInstanceState_native },
|
||||
{ "onPauseNative", "(J)V", (void*)onPause_native },
|
||||
{ "onStopNative", "(J)V", (void*)onStop_native },
|
||||
{ "onConfigurationChangedNative", "(J)V", (void*)onConfigurationChanged_native },
|
||||
{ "onLowMemoryNative", "(J)V", (void*)onLowMemory_native },
|
||||
{ "onWindowFocusChangedNative", "(JZ)V", (void*)onWindowFocusChanged_native },
|
||||
{ "onSurfaceCreatedNative", "(JLandroid/view/Surface;)V", (void*)onSurfaceCreated_native },
|
||||
{ "onSurfaceChangedNative", "(JLandroid/view/Surface;III)V", (void*)onSurfaceChanged_native },
|
||||
{ "onSurfaceRedrawNeededNative", "(JLandroid/view/Surface;)V", (void*)onSurfaceRedrawNeeded_native },
|
||||
{ "onSurfaceDestroyedNative", "(J)V", (void*)onSurfaceDestroyed_native },
|
||||
{ "onInputQueueCreatedNative", "(JJ)V",
|
||||
(void*)onInputQueueCreated_native },
|
||||
{ "onInputQueueDestroyedNative", "(II)V",
|
||||
{ "onInputQueueDestroyedNative", "(JJ)V",
|
||||
(void*)onInputQueueDestroyed_native },
|
||||
{ "onContentRectChangedNative", "(IIIII)V", (void*)onContentRectChanged_native },
|
||||
{ "onContentRectChangedNative", "(JIIII)V", (void*)onContentRectChanged_native },
|
||||
};
|
||||
|
||||
static const char* const kNativeActivityPathName = "android/app/NativeActivity";
|
||||
|
||||
@@ -70,7 +70,7 @@ static struct {
|
||||
* path: absolute path to the file to be saved
|
||||
* dataOutput: the BackupDataOutput object that we're saving into
|
||||
*/
|
||||
static int backupToTar(JNIEnv* env, jobject clazz, jstring packageNameObj,
|
||||
static jint backupToTar(JNIEnv* env, jobject clazz, jstring packageNameObj,
|
||||
jstring domainObj, jstring linkdomain,
|
||||
jstring rootpathObj, jstring pathObj, jobject dataOutputObj) {
|
||||
int ret;
|
||||
@@ -92,22 +92,22 @@ static int backupToTar(JNIEnv* env, jobject clazz, jstring packageNameObj,
|
||||
if (packagenamechars) env->ReleaseStringUTFChars(packageNameObj, packagenamechars);
|
||||
|
||||
// Extract the data output fd
|
||||
BackupDataWriter* writer = (BackupDataWriter*) env->GetIntField(dataOutputObj,
|
||||
BackupDataWriter* writer = (BackupDataWriter*) env->GetLongField(dataOutputObj,
|
||||
sBackupDataOutput.mBackupWriter);
|
||||
|
||||
// Validate
|
||||
if (!writer) {
|
||||
ALOGE("No output stream provided [%s]", path.string());
|
||||
return -1;
|
||||
return (jint) -1;
|
||||
}
|
||||
|
||||
if (path.length() < rootpath.length()) {
|
||||
ALOGE("file path [%s] shorter than root path [%s]",
|
||||
path.string(), rootpath.string());
|
||||
return -1;
|
||||
return (jint) -1;
|
||||
}
|
||||
|
||||
return write_tarfile(packageName, domain, rootpath, path, writer);
|
||||
return (jint) write_tarfile(packageName, domain, rootpath, path, writer);
|
||||
}
|
||||
|
||||
static const JNINativeMethod g_methods[] = {
|
||||
@@ -121,7 +121,7 @@ int register_android_app_backup_FullBackup(JNIEnv* env)
|
||||
jclass clazz = env->FindClass("android/app/backup/BackupDataOutput");
|
||||
LOG_FATAL_IF(clazz == NULL, "Unable to find class android.app.backup.BackupDataOutput");
|
||||
|
||||
sBackupDataOutput.mBackupWriter = env->GetFieldID(clazz, "mBackupWriter", "I");
|
||||
sBackupDataOutput.mBackupWriter = env->GetFieldID(clazz, "mBackupWriter", "J");
|
||||
LOG_FATAL_IF(sBackupDataOutput.mBackupwriter == NULL,
|
||||
"Unable to find mBackupWriter field in android.app.backup.BackupDataOutput");
|
||||
|
||||
|
||||
@@ -29,25 +29,25 @@ namespace android
|
||||
static jfieldID s_keyField = 0;
|
||||
static jfieldID s_dataSizeField = 0;
|
||||
|
||||
static int
|
||||
static jlong
|
||||
ctor_native(JNIEnv* env, jobject clazz, jobject fileDescriptor)
|
||||
{
|
||||
int fd = jniGetFDFromFileDescriptor(env, fileDescriptor);
|
||||
if (fd == -1) {
|
||||
return NULL;
|
||||
return (jlong)NULL;
|
||||
}
|
||||
|
||||
return (int)new BackupDataReader(fd);
|
||||
return (jlong)new BackupDataReader(fd);
|
||||
}
|
||||
|
||||
static void
|
||||
dtor_native(JNIEnv* env, jobject clazz, int r)
|
||||
dtor_native(JNIEnv* env, jobject clazz, jlong r)
|
||||
{
|
||||
delete (BackupDataReader*)r;
|
||||
}
|
||||
|
||||
static jint
|
||||
readNextHeader_native(JNIEnv* env, jobject clazz, int r, jobject entity)
|
||||
readNextHeader_native(JNIEnv* env, jobject clazz, jlong r, jobject entity)
|
||||
{
|
||||
int err;
|
||||
bool done;
|
||||
@@ -89,7 +89,7 @@ readNextHeader_native(JNIEnv* env, jobject clazz, int r, jobject entity)
|
||||
}
|
||||
|
||||
static jint
|
||||
readEntityData_native(JNIEnv* env, jobject clazz, int r, jbyteArray data, int offset, int size)
|
||||
readEntityData_native(JNIEnv* env, jobject clazz, jlong r, jbyteArray data, jint offset, jint size)
|
||||
{
|
||||
int err;
|
||||
BackupDataReader* reader = (BackupDataReader*)r;
|
||||
@@ -112,7 +112,7 @@ readEntityData_native(JNIEnv* env, jobject clazz, int r, jbyteArray data, int of
|
||||
}
|
||||
|
||||
static jint
|
||||
skipEntityData_native(JNIEnv* env, jobject clazz, int r)
|
||||
skipEntityData_native(JNIEnv* env, jobject clazz, jlong r)
|
||||
{
|
||||
int err;
|
||||
BackupDataReader* reader = (BackupDataReader*)r;
|
||||
@@ -123,12 +123,12 @@ skipEntityData_native(JNIEnv* env, jobject clazz, int r)
|
||||
}
|
||||
|
||||
static const JNINativeMethod g_methods[] = {
|
||||
{ "ctor", "(Ljava/io/FileDescriptor;)I", (void*)ctor_native },
|
||||
{ "dtor", "(I)V", (void*)dtor_native },
|
||||
{ "readNextHeader_native", "(ILandroid/app/backup/BackupDataInput$EntityHeader;)I",
|
||||
{ "ctor", "(Ljava/io/FileDescriptor;)J", (void*)ctor_native },
|
||||
{ "dtor", "(J)V", (void*)dtor_native },
|
||||
{ "readNextHeader_native", "(JLandroid/app/backup/BackupDataInput$EntityHeader;)I",
|
||||
(void*)readNextHeader_native },
|
||||
{ "readEntityData_native", "(I[BII)I", (void*)readEntityData_native },
|
||||
{ "skipEntityData_native", "(I)I", (void*)skipEntityData_native },
|
||||
{ "readEntityData_native", "(J[BII)I", (void*)readEntityData_native },
|
||||
{ "skipEntityData_native", "(J)I", (void*)skipEntityData_native },
|
||||
};
|
||||
|
||||
int register_android_backup_BackupDataInput(JNIEnv* env)
|
||||
|
||||
@@ -25,25 +25,25 @@
|
||||
namespace android
|
||||
{
|
||||
|
||||
static int
|
||||
static jlong
|
||||
ctor_native(JNIEnv* env, jobject clazz, jobject fileDescriptor)
|
||||
{
|
||||
int fd = jniGetFDFromFileDescriptor(env, fileDescriptor);
|
||||
if (fd == -1) {
|
||||
return NULL;
|
||||
return (jlong)NULL;
|
||||
}
|
||||
|
||||
return (int)new BackupDataWriter(fd);
|
||||
return (jlong)new BackupDataWriter(fd);
|
||||
}
|
||||
|
||||
static void
|
||||
dtor_native(JNIEnv* env, jobject clazz, int w)
|
||||
dtor_native(JNIEnv* env, jobject clazz, jlong w)
|
||||
{
|
||||
delete (BackupDataWriter*)w;
|
||||
}
|
||||
|
||||
static jint
|
||||
writeEntityHeader_native(JNIEnv* env, jobject clazz, int w, jstring key, int dataSize)
|
||||
writeEntityHeader_native(JNIEnv* env, jobject clazz, jlong w, jstring key, jint dataSize)
|
||||
{
|
||||
int err;
|
||||
BackupDataWriter* writer = (BackupDataWriter*)w;
|
||||
@@ -56,11 +56,11 @@ writeEntityHeader_native(JNIEnv* env, jobject clazz, int w, jstring key, int dat
|
||||
|
||||
env->ReleaseStringUTFChars(key, keyUTF);
|
||||
|
||||
return err;
|
||||
return (jint)err;
|
||||
}
|
||||
|
||||
static jint
|
||||
writeEntityData_native(JNIEnv* env, jobject clazz, int w, jbyteArray data, int size)
|
||||
writeEntityData_native(JNIEnv* env, jobject clazz, jlong w, jbyteArray data, jint size)
|
||||
{
|
||||
int err;
|
||||
BackupDataWriter* writer = (BackupDataWriter*)w;
|
||||
@@ -79,11 +79,11 @@ writeEntityData_native(JNIEnv* env, jobject clazz, int w, jbyteArray data, int s
|
||||
|
||||
env->ReleaseByteArrayElements(data, dataBytes, JNI_ABORT);
|
||||
|
||||
return err;
|
||||
return (jint)err;
|
||||
}
|
||||
|
||||
static void
|
||||
setKeyPrefix_native(JNIEnv* env, jobject clazz, int w, jstring keyPrefixObj)
|
||||
setKeyPrefix_native(JNIEnv* env, jobject clazz, jlong w, jstring keyPrefixObj)
|
||||
{
|
||||
int err;
|
||||
BackupDataWriter* writer = (BackupDataWriter*)w;
|
||||
@@ -97,11 +97,11 @@ setKeyPrefix_native(JNIEnv* env, jobject clazz, int w, jstring keyPrefixObj)
|
||||
}
|
||||
|
||||
static const JNINativeMethod g_methods[] = {
|
||||
{ "ctor", "(Ljava/io/FileDescriptor;)I", (void*)ctor_native },
|
||||
{ "dtor", "(I)V", (void*)dtor_native },
|
||||
{ "writeEntityHeader_native", "(ILjava/lang/String;I)I", (void*)writeEntityHeader_native },
|
||||
{ "writeEntityData_native", "(I[BI)I", (void*)writeEntityData_native },
|
||||
{ "setKeyPrefix_native", "(ILjava/lang/String;)V", (void*)setKeyPrefix_native },
|
||||
{ "ctor", "(Ljava/io/FileDescriptor;)J", (void*)ctor_native },
|
||||
{ "dtor", "(J)V", (void*)dtor_native },
|
||||
{ "writeEntityHeader_native", "(JLjava/lang/String;I)I", (void*)writeEntityHeader_native },
|
||||
{ "writeEntityData_native", "(J[BI)I", (void*)writeEntityData_native },
|
||||
{ "setKeyPrefix_native", "(JLjava/lang/String;)V", (void*)setKeyPrefix_native },
|
||||
};
|
||||
|
||||
int register_android_backup_BackupDataOutput(JNIEnv* env)
|
||||
|
||||
@@ -40,7 +40,7 @@ struct chunk_header_v1 {
|
||||
static jfieldID s_chunkSizeField = 0;
|
||||
static jfieldID s_keyPrefixField = 0;
|
||||
|
||||
static int
|
||||
static jint
|
||||
readHeader_native(JNIEnv* env, jobject clazz, jobject headerObj, jobject fdObj)
|
||||
{
|
||||
chunk_header_v1 flattenedHeader;
|
||||
@@ -52,7 +52,7 @@ readHeader_native(JNIEnv* env, jobject clazz, jobject headerObj, jobject fdObj)
|
||||
|
||||
amt = read(fd, &flattenedHeader.headerSize, sizeof(flattenedHeader.headerSize));
|
||||
if (amt != sizeof(flattenedHeader.headerSize)) {
|
||||
return -1;
|
||||
return (jint) -1;
|
||||
}
|
||||
|
||||
int remainingHeader = flattenedHeader.headerSize - sizeof(flattenedHeader.headerSize);
|
||||
@@ -62,7 +62,7 @@ readHeader_native(JNIEnv* env, jobject clazz, jobject headerObj, jobject fdObj)
|
||||
if (remainingHeader > 0) {
|
||||
lseek(fd, remainingHeader, SEEK_CUR);
|
||||
// >0 means skip this chunk
|
||||
return 1;
|
||||
return (jint) 1;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -70,7 +70,7 @@ readHeader_native(JNIEnv* env, jobject clazz, jobject headerObj, jobject fdObj)
|
||||
sizeof(chunk_header_v1)-sizeof(flattenedHeader.headerSize));
|
||||
if (amt <= 0) {
|
||||
ALOGW("Failed reading chunk header");
|
||||
return -1;
|
||||
return (jint) -1;
|
||||
}
|
||||
remainingHeader -= sizeof(chunk_header_v1)-sizeof(flattenedHeader.headerSize);
|
||||
|
||||
@@ -80,7 +80,7 @@ readHeader_native(JNIEnv* env, jobject clazz, jobject headerObj, jobject fdObj)
|
||||
if (remainingHeader > 0) {
|
||||
lseek(fd, remainingHeader, SEEK_CUR);
|
||||
// >0 means skip this chunk
|
||||
return 1;
|
||||
return (jint) 1;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -96,13 +96,13 @@ readHeader_native(JNIEnv* env, jobject clazz, jobject headerObj, jobject fdObj)
|
||||
remainingHeader < flattenedHeader.nameLength) {
|
||||
ALOGW("Malformed V1 header remainingHeader=%d dataSize=%d nameLength=%d", remainingHeader,
|
||||
flattenedHeader.dataSize, flattenedHeader.nameLength);
|
||||
return -1;
|
||||
return (jint) -1;
|
||||
}
|
||||
|
||||
buf = keyPrefix.lockBuffer(flattenedHeader.nameLength);
|
||||
if (buf == NULL) {
|
||||
ALOGW("unable to allocate %d bytes", flattenedHeader.nameLength);
|
||||
return -1;
|
||||
return (jint) -1;
|
||||
}
|
||||
|
||||
amt = read(fd, buf, flattenedHeader.nameLength);
|
||||
@@ -119,17 +119,17 @@ readHeader_native(JNIEnv* env, jobject clazz, jobject headerObj, jobject fdObj)
|
||||
env->SetIntField(headerObj, s_chunkSizeField, flattenedHeader.dataSize);
|
||||
env->SetObjectField(headerObj, s_keyPrefixField, env->NewStringUTF(keyPrefix.string()));
|
||||
|
||||
return 0;
|
||||
return (jint) 0;
|
||||
}
|
||||
|
||||
static int
|
||||
static jint
|
||||
skipChunk_native(JNIEnv* env, jobject clazz, jobject fdObj, jint bytesToSkip)
|
||||
{
|
||||
int fd = jniGetFDFromFileDescriptor(env, fdObj);
|
||||
|
||||
lseek(fd, bytesToSkip, SEEK_CUR);
|
||||
|
||||
return 0;
|
||||
return (jint) 0;
|
||||
}
|
||||
|
||||
static int
|
||||
@@ -139,7 +139,7 @@ padding_len(int len)
|
||||
return len == 0 ? len : 4 - len;
|
||||
}
|
||||
|
||||
static int
|
||||
static jint
|
||||
allocateHeader_native(JNIEnv* env, jobject clazz, jobject headerObj, jobject fdObj)
|
||||
{
|
||||
int pos;
|
||||
@@ -161,10 +161,10 @@ allocateHeader_native(JNIEnv* env, jobject clazz, jobject headerObj, jobject fdO
|
||||
|
||||
lseek(fd, headerSize, SEEK_CUR);
|
||||
|
||||
return pos;
|
||||
return (jint) pos;
|
||||
}
|
||||
|
||||
static int
|
||||
static jint
|
||||
writeHeader_native(JNIEnv* env, jobject clazz, jobject headerObj, jobject fdObj, jint pos)
|
||||
{
|
||||
int err;
|
||||
@@ -188,26 +188,26 @@ writeHeader_native(JNIEnv* env, jobject clazz, jobject headerObj, jobject fdObj,
|
||||
lseek(fd, pos, SEEK_SET);
|
||||
err = write(fd, &header, sizeof(chunk_header_v1));
|
||||
if (err != sizeof(chunk_header_v1)) {
|
||||
return errno;
|
||||
return (jint) errno;
|
||||
}
|
||||
|
||||
buf = env->GetStringUTFChars(nameObj, NULL);
|
||||
err = write(fd, buf, header.nameLength);
|
||||
env->ReleaseStringUTFChars(nameObj, buf);
|
||||
if (err != header.nameLength) {
|
||||
return errno;
|
||||
return (jint) errno;
|
||||
}
|
||||
|
||||
if (namePadding != 0) {
|
||||
int zero = 0;
|
||||
err = write(fd, &zero, namePadding);
|
||||
if (err != namePadding) {
|
||||
return errno;
|
||||
return (jint) errno;
|
||||
}
|
||||
}
|
||||
|
||||
lseek(fd, prevPos, SEEK_SET);
|
||||
return 0;
|
||||
return (jint) 0;
|
||||
}
|
||||
|
||||
static const JNINativeMethod g_methods[] = {
|
||||
|
||||
@@ -25,20 +25,20 @@
|
||||
namespace android
|
||||
{
|
||||
|
||||
static int
|
||||
static jlong
|
||||
ctor(JNIEnv* env, jobject clazz)
|
||||
{
|
||||
return (int)new RestoreHelperBase();
|
||||
return (jlong)new RestoreHelperBase();
|
||||
}
|
||||
|
||||
static void
|
||||
dtor(JNIEnv* env, jobject clazz, jint ptr)
|
||||
dtor(JNIEnv* env, jobject clazz, jlong ptr)
|
||||
{
|
||||
delete (RestoreHelperBase*)ptr;
|
||||
}
|
||||
|
||||
static int
|
||||
performBackup_native(JNIEnv* env, jobject clazz, jobject oldState, int data,
|
||||
static jint
|
||||
performBackup_native(JNIEnv* env, jobject clazz, jobject oldState, jlong data,
|
||||
jobject newState, jobjectArray files, jobjectArray keys)
|
||||
{
|
||||
int err;
|
||||
@@ -72,12 +72,12 @@ performBackup_native(JNIEnv* env, jobject clazz, jobject oldState, int data,
|
||||
}
|
||||
free(keysUTF);
|
||||
|
||||
return err;
|
||||
return (jint) err;
|
||||
}
|
||||
|
||||
|
||||
static int
|
||||
writeFile_native(JNIEnv* env, jobject clazz, jint ptr, jstring filenameObj, int backupReaderPtr)
|
||||
static jint
|
||||
writeFile_native(JNIEnv* env, jobject clazz, jlong ptr, jstring filenameObj, jlong backupReaderPtr)
|
||||
{
|
||||
int err;
|
||||
RestoreHelperBase* restore = (RestoreHelperBase*)ptr;
|
||||
@@ -90,11 +90,11 @@ writeFile_native(JNIEnv* env, jobject clazz, jint ptr, jstring filenameObj, int
|
||||
|
||||
env->ReleaseStringUTFChars(filenameObj, filename);
|
||||
|
||||
return err;
|
||||
return (jint) err;
|
||||
}
|
||||
|
||||
static int
|
||||
writeSnapshot_native(JNIEnv* env, jobject clazz, jint ptr, jobject fileDescriptor)
|
||||
static jint
|
||||
writeSnapshot_native(JNIEnv* env, jobject clazz, jlong ptr, jobject fileDescriptor)
|
||||
{
|
||||
int err;
|
||||
|
||||
@@ -103,17 +103,17 @@ writeSnapshot_native(JNIEnv* env, jobject clazz, jint ptr, jobject fileDescripto
|
||||
|
||||
err = restore->WriteSnapshot(fd);
|
||||
|
||||
return err;
|
||||
return (jint) err;
|
||||
}
|
||||
|
||||
static const JNINativeMethod g_methods[] = {
|
||||
{ "ctor", "()I", (void*)ctor },
|
||||
{ "dtor", "(I)V", (void*)dtor },
|
||||
{ "ctor", "()J", (void*)ctor },
|
||||
{ "dtor", "(J)V", (void*)dtor },
|
||||
{ "performBackup_native",
|
||||
"(Ljava/io/FileDescriptor;ILjava/io/FileDescriptor;[Ljava/lang/String;[Ljava/lang/String;)I",
|
||||
"(Ljava/io/FileDescriptor;JLjava/io/FileDescriptor;[Ljava/lang/String;[Ljava/lang/String;)I",
|
||||
(void*)performBackup_native },
|
||||
{ "writeFile_native", "(ILjava/lang/String;I)I", (void*)writeFile_native },
|
||||
{ "writeSnapshot_native", "(ILjava/io/FileDescriptor;)I", (void*)writeSnapshot_native },
|
||||
{ "writeFile_native", "(JLjava/lang/String;J)I", (void*)writeFile_native },
|
||||
{ "writeSnapshot_native", "(JLjava/io/FileDescriptor;)I", (void*)writeSnapshot_native },
|
||||
};
|
||||
|
||||
int register_android_backup_FileBackupHelperBase(JNIEnv* env)
|
||||
|
||||
Reference in New Issue
Block a user