You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by ro...@apache.org on 2017/12/07 17:08:31 UTC

[4/4] qpid-proton-j git commit: PROTON-1708: simplify the look-ahead for list entry types

PROTON-1708: simplify the look-ahead for list entry types


Project: http://git-wip-us.apache.org/repos/asf/qpid-proton-j/repo
Commit: http://git-wip-us.apache.org/repos/asf/qpid-proton-j/commit/c8276267
Tree: http://git-wip-us.apache.org/repos/asf/qpid-proton-j/tree/c8276267
Diff: http://git-wip-us.apache.org/repos/asf/qpid-proton-j/diff/c8276267

Branch: refs/heads/master
Commit: c82762676a7863debcc140e512a17518fa4129ab
Parents: 9f26806
Author: Robbie Gemmell <ro...@apache.org>
Authored: Thu Dec 7 17:00:52 2017 +0000
Committer: Robbie Gemmell <ro...@apache.org>
Committed: Thu Dec 7 17:00:52 2017 +0000

----------------------------------------------------------------------
 .../org/apache/qpid/proton/codec/ListType.java  | 28 ++++++++++----------
 1 file changed, 14 insertions(+), 14 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/qpid-proton-j/blob/c8276267/proton-j/src/main/java/org/apache/qpid/proton/codec/ListType.java
----------------------------------------------------------------------
diff --git a/proton-j/src/main/java/org/apache/qpid/proton/codec/ListType.java b/proton-j/src/main/java/org/apache/qpid/proton/codec/ListType.java
index 67e9d6e..ba84141 100644
--- a/proton-j/src/main/java/org/apache/qpid/proton/codec/ListType.java
+++ b/proton-j/src/main/java/org/apache/qpid/proton/codec/ListType.java
@@ -168,8 +168,8 @@ public class ListType extends AbstractPrimitiveType<List>
             for (int i = 0; i < count; i++)
             {
                 boolean arrayType = false;
-                byte code = buffer.get(buffer.position());
-                switch (code)
+                byte encodingCode = buffer.get(buffer.position());
+                switch (encodingCode)
                 {
                     case EncodingCodes.ARRAY8:
                     case EncodingCodes.ARRAY32:
@@ -184,12 +184,8 @@ public class ListType extends AbstractPrimitiveType<List>
                 }
                 else
                 {
-                    buffer.mark();
-
-                    byte encodingCode = buffer.get();
                     if (encodingCode == EncodingCodes.DESCRIBED_TYPE_INDICATOR || !(typeConstructor instanceof PrimitiveTypeEncoding<?>))
                     {
-                        buffer.reset();
                         typeConstructor = getDecoder().readConstructor();
                     }
                     else
@@ -197,9 +193,13 @@ public class ListType extends AbstractPrimitiveType<List>
                         PrimitiveTypeEncoding<?> primitiveConstructor = (PrimitiveTypeEncoding<?>) typeConstructor;
                         if (encodingCode != primitiveConstructor.getEncodingCode())
                         {
-                            buffer.reset();
                             typeConstructor = getDecoder().readConstructor();
                         }
+                        else
+                        {
+                            // consume the encoding code byte for real
+                            encodingCode = buffer.get();
+                        }
                     }
                 }
 
@@ -307,8 +307,8 @@ public class ListType extends AbstractPrimitiveType<List>
             for (int i = 0; i < count; i++)
             {
                 boolean arrayType = false;
-                byte code = buffer.get(buffer.position());
-                switch (code)
+                byte encodingCode = buffer.get(buffer.position());
+                switch (encodingCode)
                 {
                     case EncodingCodes.ARRAY8:
                     case EncodingCodes.ARRAY32:
@@ -323,12 +323,8 @@ public class ListType extends AbstractPrimitiveType<List>
                 }
                 else
                 {
-                    buffer.mark();
-
-                    byte encodingCode = buffer.get();
                     if (encodingCode == EncodingCodes.DESCRIBED_TYPE_INDICATOR || !(typeConstructor instanceof PrimitiveTypeEncoding<?>))
                     {
-                        buffer.reset();
                         typeConstructor = getDecoder().readConstructor();
                     }
                     else
@@ -336,9 +332,13 @@ public class ListType extends AbstractPrimitiveType<List>
                         PrimitiveTypeEncoding<?> primitiveConstructor = (PrimitiveTypeEncoding<?>) typeConstructor;
                         if (encodingCode != primitiveConstructor.getEncodingCode())
                         {
-                            buffer.reset();
                             typeConstructor = getDecoder().readConstructor();
                         }
+                        else
+                        {
+                            // consume the encoding code byte for real
+                            encodingCode = buffer.get();
+                        }
                     }
                 }
 


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org