changeset 22428:ca5200277c37

Assertion checking alignment requirements in data section.
author Roland Schatz <roland.schatz@oracle.com>
date Tue, 11 Aug 2015 15:17:53 +0200
parents 9c55f608b79e
children a1b0a76567c7
files jvmci/jdk.internal.jvmci.hotspot/src/jdk/internal/jvmci/hotspot/HotSpotCodeCacheProvider.java
diffstat 1 files changed, 5 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/jvmci/jdk.internal.jvmci.hotspot/src/jdk/internal/jvmci/hotspot/HotSpotCodeCacheProvider.java	Mon Aug 17 12:10:55 2015 +0200
+++ b/jvmci/jdk.internal.jvmci.hotspot/src/jdk/internal/jvmci/hotspot/HotSpotCodeCacheProvider.java	Tue Aug 11 15:17:53 2015 +0200
@@ -223,9 +223,12 @@
             int alignment = 1;
             for (int i = 0; i < constants.length; i++) {
                 Data data = createSingleDataItem(constants[i]);
-                size += data.getSize();
+
+                assert size % data.getAlignment() == 0 : "invalid alignment in packed constants";
+                alignment = DataSection.lcm(alignment, data.getAlignment());
+
                 builders[i] = data.getBuilder();
-                alignment = DataSection.lcm(alignment, data.getAlignment());
+                size += data.getSize();
             }
             DataBuilder ret = (buffer, patches) -> {
                 for (DataBuilder b : builders) {