summaryrefslogtreecommitdiffstats
path: root/nio/src
Commit message (Collapse)AuthorAgeFilesLines
* Remove dead native org.apache.harmony.nio.AddressUtils code.Elliott Hughes2009-10-263-119/+5
| | | | | | This code is dead at the moment, and were it ever to become live, I'm pretty sure we'd want to start again from scratch rather than do whatever the author of this had in mind.
* Remove OSNetworkSystem.receiveStream.Elliott Hughes2009-10-221-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Harmony removed this some time ago, and -- if we change our read/readDirect implementations slightly -- we can too. I've also added some bounds checking in the Java so we don't ask native code to perform a buffer overrun for us. I've also rewritten the native readSocketImpl to use GetByteArrayElements and ReleaseByteArrayElements rather than its own custom stack/heap allocation and arbitrary 64KiB limit. (As far as I can tell from the harmony history, the limit dates from when they always read into an on-stack buffer, and was never removed.) I've also brought us in line with harmony so we only pass 'address' to readDirect, rather than 'address' and 'offset'. I've changed SocketTest to match upstream and -- since they pulled out some of the tests into a new file -- I've added their UnixSocketTest so we don't miss out. Our old SocketTest's test_getInputStream is the only test my new code doesn't pass, but I think the old SocketTest was broken and the new SocketTest/UnixSocketTest is correct. I've also brought us back into line with harmony's MulticastSocketTest. With the up-to-date tests, the new code behaves the same as the old code. (With our old tests, the new code fails the joinGroup test with a NullPointerException instead of a junit comparison failure.)
* More OSNetworkSystem cleanup.Elliott Hughes2009-10-211-1/+2
| | | | | | | | | | | | | | | | | | | | | Rewrite OSNetworkSystem.connect in terms of connectStreamWithTimeoutSocketImpl in Java rather than in native code. Remove OSNetworkSystem.connectSocketImpl. Make INetworkSystem.connect void, since the return value is always 0. Use TEMP_FAILURE_RETRY rather than explicit do loops to retry interrupted system calls. Fix peekDatagramImpl to actually update the byte[] in the passed-in InetAddress. Stop pulling the int fd out of the FileDescriptor each time round the loop in sendStreamImpl and sendDatagramImpl2. More tiny steps towards eliminating the SOCKERR_ nonsense in favor of errno. Prefer sizeof(variable) to sizeof(type). Remove a few more superfluous "struct" keywords.
* Update NIO and NIO char packages to Harmony 802921.Jesse Wilson2009-10-16135-2061/+2001
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Notable changes: - We don't use Harmony's new indexing for SelectorImpl. See the long bug thread on Harmony's site, https://issues.apache.org/jira/browse/HARMONY-6312 This patch includes the latest Harmony changes to SelectorImpl, which have been optimized since this patch was first created. - Several uses of StringBuffer updated to use StringBuilder - CharBuffer.read implementation changes - Additional checking in CharsetEncoder - Some inner classes made static - Harmony changed their Charset impl from ICU to Java. We're sticking with ICU. - Harmony added support for epoll. We're sticking with standard 'poll'. commit 2ed6cb602a52f4681afbf1348928f1b0c36d914d Merge: 8a74fca bcc5ec7 Author: Jesse Wilson <jessewilson@google.com> Date: Fri Aug 14 15:14:10 2009 -0700 Merge branch 'nio_802921' into nio_dalvik Conflicts: libcore/nio/.classpath libcore/nio/META-INF/MANIFEST.MF libcore/nio/build.xml libcore/nio/make/exclude.linux.x86.drl libcore/nio/make/exclude.linux.x86.ibm libcore/nio/make/exclude.linux.x86_64.drl libcore/nio/src/main/java/java/nio/BaseByteBuffer.java libcore/nio/src/main/java/java/nio/Buffer.java libcore/nio/src/main/java/java/nio/BufferOverflowException.java libcore/nio/src/main/java/java/nio/BufferUnderflowException.java libcore/nio/src/main/java/java/nio/ByteBuffer.java libcore/nio/src/main/java/java/nio/ByteOrder.java libcore/nio/src/main/java/java/nio/CharArrayBuffer.java libcore/nio/src/main/java/java/nio/CharBuffer.java libcore/nio/src/main/java/java/nio/CharSequenceAdapter.java libcore/nio/src/main/java/java/nio/CharToByteBufferAdapter.java libcore/nio/src/main/java/java/nio/DirectByteBuffer.java libcore/nio/src/main/java/java/nio/DirectByteBuffers.java libcore/nio/src/main/java/java/nio/DoubleArrayBuffer.java libcore/nio/src/main/java/java/nio/DoubleBuffer.java libcore/nio/src/main/java/java/nio/DoubleToByteBufferAdapter.java libcore/nio/src/main/java/java/nio/FloatArrayBuffer.java libcore/nio/src/main/java/java/nio/FloatBuffer.java libcore/nio/src/main/java/java/nio/FloatToByteBufferAdapter.java libcore/nio/src/main/java/java/nio/HeapByteBuffer.java libcore/nio/src/main/java/java/nio/IntArrayBuffer.java libcore/nio/src/main/java/java/nio/IntBuffer.java libcore/nio/src/main/java/java/nio/IntToByteBufferAdapter.java libcore/nio/src/main/java/java/nio/InvalidMarkException.java libcore/nio/src/main/java/java/nio/LongArrayBuffer.java libcore/nio/src/main/java/java/nio/LongBuffer.java libcore/nio/src/main/java/java/nio/LongToByteBufferAdapter.java libcore/nio/src/main/java/java/nio/MappedByteBuffer.java libcore/nio/src/main/java/java/nio/MappedByteBufferAdapter.java libcore/nio/src/main/java/java/nio/ReadOnlyBufferException.java libcore/nio/src/main/java/java/nio/ReadOnlyCharArrayBuffer.java libcore/nio/src/main/java/java/nio/ReadOnlyDirectByteBuffer.java libcore/nio/src/main/java/java/nio/ReadOnlyDoubleArrayBuffer.java libcore/nio/src/main/java/java/nio/ReadOnlyFloatArrayBuffer.java libcore/nio/src/main/java/java/nio/ReadOnlyHeapByteBuffer.java libcore/nio/src/main/java/java/nio/ReadOnlyIntArrayBuffer.java libcore/nio/src/main/java/java/nio/ReadOnlyLongArrayBuffer.java libcore/nio/src/main/java/java/nio/ReadOnlyShortArrayBuffer.java libcore/nio/src/main/java/java/nio/ReadWriteCharArrayBuffer.java libcore/nio/src/main/java/java/nio/ReadWriteDirectByteBuffer.java libcore/nio/src/main/java/java/nio/ReadWriteDoubleArrayBuffer.java libcore/nio/src/main/java/java/nio/ReadWriteFloatArrayBuffer.java libcore/nio/src/main/java/java/nio/ReadWriteHeapByteBuffer.java libcore/nio/src/main/java/java/nio/ReadWriteIntArrayBuffer.java libcore/nio/src/main/java/java/nio/ReadWriteLongArrayBuffer.java libcore/nio/src/main/java/java/nio/ReadWriteShortArrayBuffer.java libcore/nio/src/main/java/java/nio/ShortArrayBuffer.java libcore/nio/src/main/java/java/nio/ShortBuffer.java libcore/nio/src/main/java/java/nio/ShortToByteBufferAdapter.java libcore/nio/src/main/java/java/nio/channels/AlreadyConnectedException.java libcore/nio/src/main/java/java/nio/channels/AsynchronousCloseException.java libcore/nio/src/main/java/java/nio/channels/ByteChannel.java libcore/nio/src/main/java/java/nio/channels/CancelledKeyException.java libcore/nio/src/main/java/java/nio/channels/Channel.java libcore/nio/src/main/java/java/nio/channels/Channels.java libcore/nio/src/main/java/java/nio/channels/ClosedByInterruptException.java libcore/nio/src/main/java/java/nio/channels/ClosedChannelException.java libcore/nio/src/main/java/java/nio/channels/ClosedSelectorException.java libcore/nio/src/main/java/java/nio/channels/ConnectionPendingException.java libcore/nio/src/main/java/java/nio/channels/DatagramChannel.java libcore/nio/src/main/java/java/nio/channels/FileChannel.java libcore/nio/src/main/java/java/nio/channels/FileLock.java libcore/nio/src/main/java/java/nio/channels/FileLockInterruptionException.java libcore/nio/src/main/java/java/nio/channels/GatheringByteChannel.java libcore/nio/src/main/java/java/nio/channels/IllegalBlockingModeException.java libcore/nio/src/main/java/java/nio/channels/IllegalSelectorException.java libcore/nio/src/main/java/java/nio/channels/InterruptibleChannel.java libcore/nio/src/main/java/java/nio/channels/NoConnectionPendingException.java libcore/nio/src/main/java/java/nio/channels/NonReadableChannelException.java libcore/nio/src/main/java/java/nio/channels/NonWritableChannelException.java libcore/nio/src/main/java/java/nio/channels/NotYetBoundException.java libcore/nio/src/main/java/java/nio/channels/NotYetConnectedException.java libcore/nio/src/main/java/java/nio/channels/OverlappingFileLockException.java libcore/nio/src/main/java/java/nio/channels/Pipe.java libcore/nio/src/main/java/java/nio/channels/ReadableByteChannel.java libcore/nio/src/main/java/java/nio/channels/ScatteringByteChannel.java libcore/nio/src/main/java/java/nio/channels/SelectableChannel.java libcore/nio/src/main/java/java/nio/channels/SelectionKey.java libcore/nio/src/main/java/java/nio/channels/Selector.java libcore/nio/src/main/java/java/nio/channels/ServerSocketChannel.java libcore/nio/src/main/java/java/nio/channels/SocketChannel.java libcore/nio/src/main/java/java/nio/channels/UnresolvedAddressException.java libcore/nio/src/main/java/java/nio/channels/UnsupportedAddressTypeException.java libcore/nio/src/main/java/java/nio/channels/WritableByteChannel.java libcore/nio/src/main/java/java/nio/channels/spi/AbstractInterruptibleChannel.java libcore/nio/src/main/java/java/nio/channels/spi/AbstractSelectableChannel.java libcore/nio/src/main/java/java/nio/channels/spi/AbstractSelectionKey.java libcore/nio/src/main/java/java/nio/channels/spi/AbstractSelector.java libcore/nio/src/main/java/java/nio/channels/spi/SelectorProvider.java libcore/nio/src/main/java/org/apache/harmony/nio/AddressUtil.java libcore/nio/src/main/java/org/apache/harmony/nio/FileChannelFactory.java libcore/nio/src/main/java/org/apache/harmony/nio/internal/DatagramChannelImpl.java libcore/nio/src/main/java/org/apache/harmony/nio/internal/DirectBuffer.java libcore/nio/src/main/java/org/apache/harmony/nio/internal/FileChannelImpl.java libcore/nio/src/main/java/org/apache/harmony/nio/internal/FileLockImpl.java libcore/nio/src/main/java/org/apache/harmony/nio/internal/IOUtil.java libcore/nio/src/main/java/org/apache/harmony/nio/internal/MappedByteBufferFactory.java libcore/nio/src/main/java/org/apache/harmony/nio/internal/ReadOnlyFileChannel.java libcore/nio/src/main/java/org/apache/harmony/nio/internal/ReadWriteFileChannel.java libcore/nio/src/main/java/org/apache/harmony/nio/internal/SelectorImpl.java libcore/nio/src/main/java/org/apache/harmony/nio/internal/SelectorProviderImpl.java libcore/nio/src/main/java/org/apache/harmony/nio/internal/SocketChannelImpl.java libcore/nio/src/main/java/org/apache/harmony/nio/internal/WriteOnlyFileChannel.java libcore/nio/src/main/native/nio/shared/DirectBufferUtil.c libcore/nio/src/main/native/nio/unix/exports.txt libcore/nio/src/main/native/nio/unix/makefile libcore/nio/src/main/native/nio/windows/makefile libcore/nio/src/test/java/org/apache/harmony/nio/tests/java/nio/BufferOverflowExceptionTest.java libcore/nio/src/test/java/org/apache/harmony/nio/tests/java/nio/BufferUnderflowExceptionTest.java libcore/nio/src/test/java/org/apache/harmony/nio/tests/java/nio/CharBufferTest.java libcore/nio/src/test/java/org/apache/harmony/nio/tests/java/nio/FloatBufferTest.java libcore/nio/src/test/java/org/apache/harmony/nio/tests/java/nio/InvalidMarkExceptionTest.java libcore/nio/src/test/java/org/apache/harmony/nio/tests/java/nio/MappedByteBufferTest.java libcore/nio/src/test/java/org/apache/harmony/nio/tests/java/nio/ReadOnlyBufferExceptionTest.java libcore/nio/src/test/java/org/apache/harmony/nio/tests/java/nio/channels/DatagramChannelTest.java libcore/nio/src/test/java/org/apache/harmony/nio/tests/java/nio/channels/FileChannelLockingTest.java libcore/nio/src/test/java/org/apache/harmony/nio/tests/java/nio/channels/FileChannelTest.java libcore/nio/src/test/java/org/apache/harmony/nio/tests/java/nio/channels/FileChannelWin32OnlyTest.java libcore/nio/src/test/java/org/apache/harmony/nio/tests/java/nio/channels/FileLockTest.java libcore/nio/src/test/java/org/apache/harmony/nio/tests/java/nio/channels/ServerSocketChannelTest.java libcore/nio/src/test/java/org/apache/harmony/nio/tests/java/nio/channels/SocketChannelTest.java libcore/nio/src/test/java/org/apache/harmony/nio/tests/java/nio/channels/spi/AbstractSelectableChannelTest.java libcore/nio_char/.classpath libcore/nio_char/META-INF/MANIFEST.MF libcore/nio_char/build.xml libcore/nio_char/src/main/java/java/nio/charset/CharacterCodingException.java libcore/nio_char/src/main/java/java/nio/charset/Charset.java libcore/nio_char/src/main/java/java/nio/charset/CharsetDecoder.java libcore/nio_char/src/main/java/java/nio/charset/CharsetEncoder.java libcore/nio_char/src/main/java/java/nio/charset/CoderMalfunctionError.java libcore/nio_char/src/main/java/java/nio/charset/CoderResult.java libcore/nio_char/src/main/java/java/nio/charset/CodingErrorAction.java libcore/nio_char/src/main/java/java/nio/charset/IllegalCharsetNameException.java libcore/nio_char/src/main/java/java/nio/charset/MalformedInputException.java libcore/nio_char/src/main/java/java/nio/charset/UnmappableCharacterException.java libcore/nio_char/src/main/java/java/nio/charset/UnsupportedCharsetException.java libcore/nio_char/src/test/java/org/apache/harmony/nio_char/tests/java/nio/charset/CharsetDecoderTest.java libcore/nio_char/src/test/java/org/apache/harmony/nio_char/tests/java/nio/charset/CharsetEncoderTest.java libcore/nio_char/src/test/java/org/apache/harmony/nio_char/tests/java/nio/charset/CharsetTest.java libcore/nio_char/src/test/java/tests/api/java/nio/charset/ASCCharsetDecoderTest.java libcore/nio_char/src/test/java/tests/api/java/nio/charset/CharsetDecoderTest.java libcore/nio_char/src/test/java/tests/api/java/nio/charset/CharsetEncoderTest.java libcore/nio_char/src/test/java/tests/api/java/nio/charset/CharsetProviderTest.java libcore/nio_char/src/test/java/tests/api/java/nio/charset/CharsetTest.java libcore/nio_char/src/test/java/tests/api/java/nio/charset/GBCharsetDecoderTest.java libcore/nio_char/src/test/java/tests/api/java/nio/charset/GBCharsetEncoderTest.java libcore/nio_char/src/test/java/tests/api/java/nio/charset/ISOCharsetDecoderTest.java libcore/nio_char/src/test/java/tests/api/java/nio/charset/UTF16BECharsetDecoderTest.java libcore/nio_char/src/test/java/tests/api/java/nio/charset/UTF16CharsetDecoderTest.java libcore/nio_char/src/test/java/tests/api/java/nio/charset/UTF16CharsetEncoderTest.java libcore/nio_char/src/test/java/tests/api/java/nio/charset/UTF16LECharsetDecoderTest.java libcore/nio_char/src/test/java/tests/api/java/nio/charset/UTFCharsetDecoderTest.java libcore/nio_char/src/test/java/tests/api/java/nio/charset/UTFCharsetEncoderTest.java commit 8a74fca0d85c82a9d02a83d00fd028d9b09755f7 Author: Jesse Wilson <jessewilson@google.com> Date: Thu Aug 13 16:03:25 2009 -0700 Dalvik Nio, Nio char commit bcc5ec78806787fbecab742e716fc0d63bcece5c Author: Jesse Wilson <jessewilson@google.com> Date: Thu Aug 13 16:01:06 2009 -0700 Nio, nio char 802921 commit fc1e09e74aec8e49e0e23f13643deed1e9112af4 Author: Jesse Wilson <jessewilson@google.com> Date: Thu Aug 13 15:48:17 2009 -0700 Nio, nio char 527399
* :: is a valid local address on a newly-created socket if IPv6 is preferred.Lorenzo Colitti2009-10-011-1/+1
|
* Throw meaningful IOException instances from native code.Elliott Hughes2009-09-301-0/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The Java side of OSFileSystem was throwing IOExceptions with no detail message. If we throw from the native side instead, we can supply meaningful explanations. This turned up a couple of bugs: * read, readDirect, readv, writev, and ttyRead would only throw IOException if they returned < -1, which is impossible. (writev was probably a copy & paste from readv, and the reads were probably confused by the impedence mismatch between Unix's use of 0 to mean end of file and -1 to mean error, and Java's use of -1 for end of file.) * inconsistent checking for null byte[]s passed in. * read and write would retry on EINTR, but readDirect and writeDirect wouldn't. * we'd silently truncate seek/lock/truncate offsets that didn't fit in 32 bits; we now throw an IOException instead. It also means a few native functions become "void" because errors are now reported by throwing exceptions, and the Java functions that used to call them are no longer needed. Also change ProcessManager to use jniThrowIOException, remove the unused throwIOExceptionStr from OSNetworkSystem.cpp, and remove the KnownFailure from FileTest's test_delete, now we have a fixed version of yaffs that won't rmdir(2) non-empty directories. Bug: 1542253
* am bd79e449: Fix an issue where we\'re adding 4x the intended offset.Jesse Wilson2009-07-302-0/+50
|\ | | | | | | | | | | | | Merge commit 'bd79e4498465381117f2cbc6399a256061f1d144' * commit 'bd79e4498465381117f2cbc6399a256061f1d144': Fix an issue where we're adding 4x the intended offset.
| * Fix an issue where we're adding 4x the intended offset.Jesse Wilson2009-07-292-0/+50
| | | | | | | | | | | | We were doing pointer arithmetic of mixed types (jint* and jint), and the type conversion ended up causing the offset to be converted an extra time.
* | Merge change 5582Android (Google) Code Review2009-07-273-306/+276
|\ \ | | | | | | | | | | | | * changes: Integrate luni module (but not tests) to Harmony r772995.
| * | Integrate luni module (but not tests) to Harmony r772995.Jesse Wilson2009-07-243-306/+276
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Notable changes - Stripped "@since Android 1.0" from many files. Most files are now 100% the same in Dalvik and Harmony. - AbstractStringBuilder.reverse() supports surrogates - AbstractStringBuilder shares less to waste less memory - Bitset optimized - BufferedInputStream changed to support unsynchronized close() - BufferedOutputStream does flushInternal - BufferedReader supports EBCDIC NEL - Collections.synchronizedList().indexOf() does a copy for more concurrency - Classes in nio module changed: DatagramChannelImpl, SocketChannelImpl and ServerSocketChannelImpl (these depend on internal APIs changed in this update) - DataInputStream/DataOutputStream now use a small buffer to limit the number of times the underlying stream is accessed - Date now has a minutes offset, more efficient toString() - ExposedByteArrayInputStream: new internal class - DeleteOnExit moved to top-level class - FileDescriptor.isValid() now non-native - Float, Double lessThan optimized (fix for compare(-0.0F, 0.0F) still pending) - FileURLConnection now guesses content types from streams - HashMap iterator changes - Hashtable iterator changes - INetworkSystem - removes bind2(), createMulticastSocket, sendStream(), - renames createSocket to createStreamSocket - JarURLConnection rewritten - LinkedHashMap: new iterator - Locale, Currency, TimeZone: now use ICU in Harmony, plain Java in Dalvik - ObjectInputStream: Accessor objects in Harmony, direct native in Dalvik - ProxyClassFile - many changes - String - optimized ascii for toLowerCase, toUpperCase, compare - Timer - rewritten - TreeMap - rewritten - URLClassLoader - new - URLConnection - new guessContentTypeFromStream(), uses org.apache.harmony.awt.www.content to lookup content type handlers
* | | am 8e696dc0: JNI direct buffer function speedup, part 3.Andy McFadden2009-07-259-8/+50
|\ \ \ | |/ / |/| / | |/ | | | | | | Merge commit '8e696dc0271299433cb3297e7aafc7bd0ee1b2b7' * commit '8e696dc0271299433cb3297e7aafc7bd0ee1b2b7': JNI direct buffer function speedup, part 3.
| * JNI direct buffer function speedup, part 3.Andy McFadden2009-07-249-8/+50
| | | | | | | | | | | | | | | | This caches the effective address in a new field in the base Buffer object. The first time something calls through one of the various getEffectiveAddress calls, the value is set. (This seemed easier than chasing down the constructors and factories, and also prevents bit rot on the "slow path" in the VM.)
* | am ac02d18: am 2de2459: AI 148670: More tests that need to be marked broJorg Pleumann2009-05-111-0/+2
|\ \ | |/ | | | | | | | | | | Merge commit 'ac02d185cf7f5b494c621ca67a4d786348deac3a' * commit 'ac02d185cf7f5b494c621ca67a4d786348deac3a': AI 148670: More tests that need to be marked broken, since
| * AI 148670: More tests that need to be marked broken, sinceJorg Pleumann2009-05-111-0/+2
| | | | | | | | | | | | | | | | they behave differently in CTS and plain VM. Hopefully the last ones... BUG=1285921 Automated import of CL 148670
* | am 61df6ac: am 2f563a4: AI 148431: Marking as broken a couple of testsJorg Pleumann2009-05-071-0/+5
|\ \ | |/ | | | | | | | | | | Merge commit '61df6ac69e6614cb9986bf4ce3626dda914e0c6a' * commit '61df6ac69e6614cb9986bf4ce3626dda914e0c6a': AI 148431: Marking as broken a couple of tests
| * AI 148431: Marking as broken a couple of testsJorg Pleumann2009-05-071-0/+5
| | | | | | | | | | | | | | that tend to fail in the CTS host. BUG=1285921 Automated import of CL 148431
| * AI 145288: Removing tabs from tests.Urs Grob2009-04-098-13/+13
| | | | | | | | | | | | BUG=1285921 Automated import of CL 145288
* | AI 145649: am: CL 145612 am: CL 145288 Removing tabs from tests.Urs Grob2009-04-098-13/+13
| | | | | | | | | | | | | | | | Original author: ursg Merged from: //branches/cupcake/... Original author: android-build Automated import of CL 145649
* | auto import //branches/master/...@140412The Android Open Source Project2009-03-181-0/+91
|/
* auto import from //branches/cupcake_rel/...@140373The Android Open Source Project2009-03-181-5/+0
|
* auto import from //branches/cupcake/...@137873The Android Open Source Project2009-03-112-5/+0
|
* auto import from //depot/cupcake/@135843The Android Open Source Project2009-03-03246-0/+58650
|
* auto import from //depot/cupcake/@135843The Android Open Source Project2009-03-03246-58650/+0
|
* auto import from //branches/cupcake/...@130745The Android Open Source Project2009-02-1046-310/+577
|
* auto import from //branches/cupcake/...@126645The Android Open Source Project2009-01-153-27/+7
|
* auto import from //branches/cupcake/...@125939The Android Open Source Project2009-01-09109-10403/+11669
|
* Code drop from //branches/cupcake/...@124589The Android Open Source Project2008-12-17167-3760/+13544
|
* Initial ContributionThe Android Open Source Project2008-10-21246-0/+47353