aboutsummaryrefslogtreecommitdiff
path: root/src/org/gnunet/construct/parsers/SequenceParser.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/org/gnunet/construct/parsers/SequenceParser.java')
-rw-r--r--src/org/gnunet/construct/parsers/SequenceParser.java7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/org/gnunet/construct/parsers/SequenceParser.java b/src/org/gnunet/construct/parsers/SequenceParser.java
index 7d35cc4..f472533 100644
--- a/src/org/gnunet/construct/parsers/SequenceParser.java
+++ b/src/org/gnunet/construct/parsers/SequenceParser.java
@@ -21,6 +21,7 @@
21package org.gnunet.construct.parsers; 21package org.gnunet.construct.parsers;
22 22
23import org.gnunet.construct.Message; 23import org.gnunet.construct.Message;
24import org.gnunet.construct.ReflectUtil;
24 25
25import java.lang.reflect.Field; 26import java.lang.reflect.Field;
26import java.nio.ByteBuffer; 27import java.nio.ByteBuffer;
@@ -58,7 +59,6 @@ public class SequenceParser implements Parser {
58 Message frameObj, final Message dst, List<Field> frameSizePath) { 59 Message frameObj, final Message dst, List<Field> frameSizePath) {
59 int size = 0; 60 int size = 0;
60 for (final Parser p : childParsers) { 61 for (final Parser p : childParsers) {
61 List<Field> path;
62 size += p.parse(srcBuf, frameOffset, frameObj, dst, 62 size += p.parse(srcBuf, frameOffset, frameObj, dst,
63 frameSizePath == null ? myFrameSizePath : frameSizePath); 63 frameSizePath == null ? myFrameSizePath : frameSizePath);
64 } 64 }
@@ -76,6 +76,11 @@ public class SequenceParser implements Parser {
76 76
77 @Override 77 @Override
78 public void patch(Message m, int frameSize, List<Field> frameSizePath, Message frameObj) { 78 public void patch(Message m, int frameSize, List<Field> frameSizePath, Message frameObj) {
79 // todo: this should be optimized / only be done by the topmost sequence parse => introduce a boolean parameter
80 if (myFrameSizePath != null) {
81 ReflectUtil.justSetInt(frameObj, myFrameSizePath, frameSize);
82 }
83
79 for (final Parser p : childParsers) { 84 for (final Parser p : childParsers) {
80 p.patch(m, frameSize, frameSizePath == null ? myFrameSizePath : frameSizePath, frameObj); 85 p.patch(m, frameSize, frameSizePath == null ? myFrameSizePath : frameSizePath, frameObj);
81 } 86 }