aboutsummaryrefslogtreecommitdiff
path: root/java/src/main/java/com/google/protobuf/Internal.java
diff options
context:
space:
mode:
authorkenton@google.com <kenton@google.com@630680e5-0e50-0410-840e-4b1c322b438d>2009-08-07 21:19:29 +0000
committerkenton@google.com <kenton@google.com@630680e5-0e50-0410-840e-4b1c322b438d>2009-08-07 21:19:29 +0000
commit7ddfb4c3c7ccce125a4060a0b7049c626b28064b (patch)
tree87ae627e5071b03479eda30fc3757b6328d76dc0 /java/src/main/java/com/google/protobuf/Internal.java
parent68996fc874300337ec7349f50d0b1cbb3a6f1bec (diff)
downloadprotobuf-7ddfb4c3c7ccce125a4060a0b7049c626b28064b.tar.gz
protobuf-7ddfb4c3c7ccce125a4060a0b7049c626b28064b.tar.bz2
protobuf-7ddfb4c3c7ccce125a4060a0b7049c626b28064b.zip
Remove semi-broken Java thread-local builder freelist 'optimization'. Maybe bring back later in optional form.
Diffstat (limited to 'java/src/main/java/com/google/protobuf/Internal.java')
-rw-r--r--java/src/main/java/com/google/protobuf/Internal.java75
1 files changed, 1 insertions, 74 deletions
diff --git a/java/src/main/java/com/google/protobuf/Internal.java b/java/src/main/java/com/google/protobuf/Internal.java
index ba8e6aee..965465e1 100644
--- a/java/src/main/java/com/google/protobuf/Internal.java
+++ b/java/src/main/java/com/google/protobuf/Internal.java
@@ -38,83 +38,10 @@ import java.io.UnsupportedEncodingException;
* those generated messages do not reside in the {@code protobuf} package.
* Others should not use this class directly.
*
- * @author cyrusn@google.com (Cyrus Najmabadi)
+ * @author kenton@google.com (Kenton Varda)
*/
public class Internal {
/**
- * Implementation of a Queue designed to have as little overhead as possible.
- * No guarantees are made as to the order you will get values back from the
- * queue. Currently it is a Last-In-First-Out implementation, but that may
- * change in the future.
- *
- * Duplicate values are allowed, as are null values.
- *
- * Not threadsafe.
- *
- * @author cyrusn@google.com (Cyrus Najmabadi)
- */
- public static final class QuickQueue<T> {
- @SuppressWarnings("unchecked")
- private T[] array = (T[]) new Object[16];
- private int size;
-
- /**
- * Adds a value to the queue.
- *
- * @param value The value to add to the queue.
- */
- public void offer(final T value) {
- if (size == array.length) {
- // I'd like to use Arrays.copy here. However, it is currently
- // unavailable
- // on android. So, for now, we just use the tried and true arraycopy
- // technique.
- @SuppressWarnings("unchecked")
- final T[] copy = (T[]) new Object[size * 2];
- System.arraycopy(array, 0, copy, 0, array.length);
- array = copy;
- }
-
- array[size++] = value;
- }
-
- /**
- * Removes some previously added value to the queue, or {@code null} if the
- * queue is empty.
- *
- * @return An existing value in the queue, or {@code null} if the queue is
- * empty.
- */
- public T poll() {
- if (size == 0) {
- return null;
- }
-
- final T result = array[--size];
- // make sure we null out the entry so that we're not keeping anything
- // alive unnecessarily.
- array[size] = null;
-
- return result;
- }
- }
-
- /**
- * Instances of this class will provide a unique {@code QuickQueue} to each
- * thread that accesses it. Very useful for providing free lists without
- * needing to take any locks.
- *
- * @author cyrusn@google.com (Cyrus Najmabadi)
- */
- public static final class ThreadLocalQuickQueue<T>
- extends ThreadLocal<QuickQueue<T>> {
- @Override
- protected QuickQueue<T> initialValue() {
- return new QuickQueue<T>();
- }
- }
-
- /**
* Helper called by generated code to construct default values for string
* fields.
* <p>