replicant-frameworks_native/libs/utils
Kenny Root dbf6f272a2 ZipFileRO: moar logging and wrap close
There is apparently still a race upon reading the entry Local File
Header that can't be tracked down, so move the LFH check inside the
mutex-protected block so we can call lseek again to see where we are
when we log an error.

Also, close() can fail so use TEMP_FAILURE_RETRY on it so we don't
unwittingly leak file descriptors when Mean Mr. EINTR comes a-knocking.

Change-Id: I753abad0bd882fe28f7281c406fa76f64393ef4c
2010-10-01 18:30:59 -07:00
..
tests Replace epoll() with poll() and rename PollLoop to Looper. 2010-09-14 01:59:45 -07:00
Android.mk Replace epoll() with poll() and rename PollLoop to Looper. 2010-09-14 01:59:45 -07:00
Asset.cpp
AssetDir.cpp
AssetManager.cpp More native work. 2010-08-11 00:29:59 -07:00
BackupData.cpp
BackupHelpers.cpp
BufferedTextOutput.cpp
CallStack.cpp
Debug.cpp
FileMap.cpp
Flattenable.cpp
Looper.cpp Looper: use pthread_once for TLS key initialization. 2010-09-21 15:26:51 -07:00
misc.cpp
MODULE_LICENSE_APACHE2
NOTICE
ObbFile.cpp Add OBB flags to support overlays 2010-08-18 09:34:58 -07:00
Pool.cpp
README
RefBase.cpp
ResourceTypes.cpp Add better debug output for ResourceType errors 2010-09-02 14:58:47 -07:00
SharedBuffer.cpp
Static.cpp
StopWatch.cpp
StreamingZipInflater.cpp Attempt to fix the SDK build 2010-07-29 13:42:45 -07:00
String8.cpp
String16.cpp
StringArray.cpp
SystemClock.cpp
TextOutput.cpp
Threads.cpp Always set the scheduling group when starting a new thread. 2010-09-09 22:12:25 -07:00
Timers.cpp
VectorImpl.cpp
ZipFileCRO.cpp
ZipFileRO.cpp ZipFileRO: moar logging and wrap close 2010-10-01 18:30:59 -07:00
ZipUtils.cpp

Android Utility Function Library

If you need a feature that is native to Linux but not present on other
platforms, construct a platform-dependent implementation that shares
the Linux interface.  That way the actual device runs as "light" as
possible.

If that isn't feasible, create a system-independent interface and hide
the details.

The ultimate goal is *not* to create a super-duper platform abstraction
layer.  The goal is to provide an optimized solution for Linux with
reasonable implementations for other platforms.