• Tor Lillqvist's avatar
    osl_unmapFile can't work for files bundled inside the .apk on Android · e3ab0fd9
    Tor Lillqvist yazdı
    On Android, when an app is installed, arbitrary files bundled in the
    app won't be unpacked into actual separate files in the file
    system. They will exist only as archive entries in the .apk file
    (which is a zip archive).
    
    The SDK tooling puts such files under the /assets folder in the
    .apk. The LibreOffice bootstrapping code for Android maps the .apk
    file into memory.
    
    osl_openFile() knows about the /assets special case, and uses a
    separate abstraction for such memory-mapped files.
    
    Obviously, when producing an .apk, one needs to make sure these
    bundled files are not compressed, if one wants to be able to use them
    directly from the memory-mapped .apk file. We do that in our test and
    sample Android projects.
    
    When mapping such files under /assets , just return a pointer to the
    file's location inside the mapped .apk archive.
    
    We can't use the old osl_unmapFile() on such mapped files, as that
    would unexpectedly unmap fairly arbitrary pages of the .apk mapping,
    wreaking havoc on later use of the same pages.
    
    So, introduce a new osl_unmapMappedFile() function that takes also the
    oslFileHandle originally passed to osl_mapFile(). Use this instead in
    the few places where the code actually called osl_unmapFile(). Make
    sure osl_mapFile() is nonexistent on Android.
    e3ab0fd9
Adı
Son kayıt (commit)
Son güncelleme
..
inc Loading commit data...
prj Loading commit data...
source Loading commit data...
util Loading commit data...
workben Loading commit data...
version.mk Loading commit data...