From 2d1f2beec155d145990f3e8e9c6e0c7017af707b Mon Sep 17 00:00:00 2001 From: =?utf8?q?Lo=C3=AFc=20Prieur-Drevon?= Date: Tue, 18 Oct 2016 12:14:30 -0400 Subject: [PATCH] ss: fix common node header size and check free space MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit COMMON_HEADER_SIZE had not been corrected after modifying strings sections. Check that node free space is consistent with what is written to disk. Change-Id: I9186f8b2e32159d9f2c771358c337aaf0ebb38c3 Signed-off-by: Loïc Prieur-Drevon Reviewed-on: https://git.eclipse.org/r/83456 Reviewed-by: Genevieve Bastien Tested-by: Genevieve Bastien Reviewed-by: Hudson CI --- .../statesystem/core/backend/historytree/HTNode.java | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/statesystem/org.eclipse.tracecompass.statesystem.core/src/org/eclipse/tracecompass/internal/statesystem/core/backend/historytree/HTNode.java b/statesystem/org.eclipse.tracecompass.statesystem.core/src/org/eclipse/tracecompass/internal/statesystem/core/backend/historytree/HTNode.java index 9cada2d4f4..fe52f63631 100644 --- a/statesystem/org.eclipse.tracecompass.statesystem.core/src/org/eclipse/tracecompass/internal/statesystem/core/backend/historytree/HTNode.java +++ b/statesystem/org.eclipse.tracecompass.statesystem.core/src/org/eclipse/tracecompass/internal/statesystem/core/backend/historytree/HTNode.java @@ -99,14 +99,13 @@ public abstract class HTNode { *
      *  1 - byte (type)
      * 16 - 2x long (start time, end time)
-     * 16 - 4x int (seq number, parent seq number, intervalcount,
-     *              strings section pos.)
+     * 16 - 3x int (seq number, parent seq number, intervalcount)
      *  1 - byte (done or not)
      * 
*/ private static final int COMMON_HEADER_SIZE = Byte.BYTES + 2 * Long.BYTES - + 4 * Integer.BYTES + + 3 * Integer.BYTES + Byte.BYTES; // ------------------------------------------------------------------------ @@ -268,7 +267,9 @@ public abstract class HTNode { /* Back to us, we write the intervals */ fIntervals.forEach(i -> i.writeInterval(buffer)); - + if (blockSize - buffer.position() != getNodeFreeSpace()) { + throw new IllegalStateException("Wrong free space: Actual: " + (blockSize - buffer.position()) + ", Expected: " + getNodeFreeSpace()); //$NON-NLS-1$ //$NON-NLS-2$ + } /* * Fill the rest with zeros */ -- 2.34.1