private void patchData(Map<Integer, NativeImagePatcher> patcher, @SuppressWarnings("unused") ObjectConstantsHolder objectConstants) { for (DataPatch dataPatch : compilation.getDataPatches()) { NativeImagePatcher patch = patcher.get(dataPatch.pcOffset); if (dataPatch.reference instanceof DataSectionReference) { DataSectionReference ref = (DataSectionReference) dataPatch.reference; int pcDisplacement = constantsOffset + ref.getOffset() - dataPatch.pcOffset; patch.patch(dataPatch.pcOffset, pcDisplacement, compiledBytes); } else if (dataPatch.reference instanceof ConstantReference) { ConstantReference ref = (ConstantReference) dataPatch.reference; SubstrateObjectConstant refConst = (SubstrateObjectConstant) ref.getConstant(); objectConstants.add(patch, refConst); } } }
patches.get(call.pcOffset).patch(call.pcOffset, (int) pcDisplacement, compiledBytes);