void Instance::ImageReferenceHelper :: writeReference(MemoryWriter& writer, void* vaddress, bool relative, size_t disp) { ref_t address = (ref_t)vaddress; // calculate relative address if (relative) address -= ((ref_t)writer.Address() + 4); writer.writeDWord(address + disp); }
void JITLinker::ReferenceHelper :: writeReference(MemoryWriter& writer, void* vaddress, bool relative, size_t disp) { if (!_owner->_virtualMode) { ref_t address = (ref_t)vaddress; // calculate relative address if (relative) address -= ((ref_t)writer.Address() + 4); writer.writeDWord(address + disp); } else if (relative) { writer.writeRef(((ref_t)vaddress | mskRelCodeRef), disp); } else writer.writeRef((ref_t)vaddress, disp); }