Introduce NDK API for 64-bit assets
Assets were switched to using 64-bit all through the system, so switch
the NDK to using this new API as well.
Change-Id: I2817b11369db3a4dd504b839ef1a3a9780b83533
diff --git a/native/android/asset_manager.cpp b/native/android/asset_manager.cpp
index 33f088d..f5db57c 100644
--- a/native/android/asset_manager.cpp
+++ b/native/android/asset_manager.cpp
@@ -178,6 +178,11 @@
return asset->mAsset->seek(offset, whence);
}
+off64_t AAsset_seek64(AAsset* asset, off64_t offset, int whence)
+{
+ return asset->mAsset->seek(offset, whence);
+}
+
void AAsset_close(AAsset* asset)
{
asset->mAsset->close();
@@ -194,14 +199,35 @@
return asset->mAsset->getLength();
}
+off64_t AAsset_getLength64(AAsset* asset)
+{
+ return asset->mAsset->getLength();
+}
+
off_t AAsset_getRemainingLength(AAsset* asset)
{
return asset->mAsset->getRemainingLength();
}
+off64_t AAsset_getRemainingLength64(AAsset* asset)
+{
+ return asset->mAsset->getRemainingLength();
+}
+
int AAsset_openFileDescriptor(AAsset* asset, off_t* outStart, off_t* outLength)
{
- return asset->mAsset->openFileDescriptor((off64_t*)outStart, (off64_t*)outLength);
+ off64_t outStart64, outLength64;
+
+ int ret = asset->mAsset->openFileDescriptor(&outStart64, &outLength64);
+
+ *outStart = off_t(outStart64);
+ *outLength = off_t(outLength64);
+ return ret;
+}
+
+int AAsset_openFileDescriptor64(AAsset* asset, off64_t* outStart, off64_t* outLength)
+{
+ return asset->mAsset->openFileDescriptor(outStart, outLength);
}
int AAsset_isAllocated(AAsset* asset)