Comment on page
ptr
The Pointer library contains helper functions to deal with pointer types. The
relative_to
functions are meant to be used with the [[pointer_base]]
attributeA nullable pointer, generic over both the pointee type and pointer type.
By nullable, we mean that if the pointer's value is zero (
0x0
), then the value will appear as padding rather than a pointer to something, but if the pointer's value is non-zero, that non-zero value will be treated as a pointer of type PointerTy
which points to an element of type PointeeTy
.Example: A struct field called
p_myInfo
which is a nullable 64-bit pointer to an element of type MyInfoTy
would be written as:struct MyStruct {
std::ptr::NullablePtr<MyInfoTy, u64> p_myInfo;
}
struct NullablePtr<PointeeTy, PointerTy> { ... };
Use the offset of the current pointer as start address
offset
: The pointer's valuereturn
: The new pointer base
fn relative_to_pointer(u128 offset);
Use the offset of the pointer's parent as start address
offset
: The pointer's valuereturn
: The new pointer base
fn relative_to_parent(u128 offset);
Use the end of the file as pointer base address and use its value as offset backwards from there
offset
: The pointer's valuereturn
: The new pointer base
fn relative_to_end(u128 offset);
Last modified 8mo ago