private void markRelocationSitesFromMaps(RelocatableBuffer relocationMap, ProgbitsSectionImpl sectionImpl, Map<Object, NativeImageHeap.ObjectInfo> objectMap) {
for (Map.Entry<Integer, RelocatableBuffer.Info> entry : relocationMap.entrySet()) {
final int offset = entry.getKey();
final RelocatableBuffer.Info info = entry.getValue();
assert checkEmbeddedOffset(sectionImpl, offset, info);
if (info.getTargetObject() instanceof CFunctionPointer) {
markFunctionRelocationSite(sectionImpl, offset, info);
} else {
if (sectionImpl.getElement() == textSection) {
markDataRelocationSiteFromText(relocationMap, sectionImpl, offset, info, objectMap);
} else {
final Object targetObject = info.getTargetObject();
final NativeImageHeap.ObjectInfo targetObjectInfo = objectMap.get(targetObject);
markDataRelocationSite(sectionImpl, offset, info, targetObjectInfo);
}
}
}
}