From 99ecdced03adf0020ab2aa579f00b7c39b69c52e Mon Sep 17 00:00:00 2001 From: jD91mZM2 Date: Thu, 21 Jun 2018 16:50:04 +0200 Subject: [PATCH] Add mutable pointers --- src/impl-aarch64-elf.rs | 5 +++++ src/impl-arm-sysv.rs | 5 +++++ src/impl-x86-sysv.rs | 5 +++++ src/impl-x86_64-elf.rs | 5 +++++ src/impl-x86_64-win64.rs | 5 +++++ 5 files changed, 25 insertions(+) diff --git a/src/impl-aarch64-elf.rs b/src/impl-aarch64-elf.rs index 4764da6..428a705 100644 --- a/src/impl-aarch64-elf.rs +++ b/src/impl-aarch64-elf.rs @@ -42,6 +42,11 @@ impl VaPrimitive for *const T { ::get(list) as *const T } } +impl VaPrimitive for *mut T { + unsafe fn get(list: &mut VaList) -> Self { + ::get(list) as *mut T + } +} macro_rules! impl_va_prim_gr { ($u: ty, $s: ty) => { diff --git a/src/impl-arm-sysv.rs b/src/impl-arm-sysv.rs index ef5e99a..d9e4e29 100644 --- a/src/impl-arm-sysv.rs +++ b/src/impl-arm-sysv.rs @@ -26,6 +26,11 @@ impl VaPrimitive for *const T { ::get(list) as *const T } } +impl VaPrimitive for *const T { + unsafe fn get(list: &mut VaList) -> Self { + ::get(list) as *mut T + } +} impl VaPrimitive for usize { unsafe fn get(l: &mut VaList) -> Self { l.get_raw() diff --git a/src/impl-x86-sysv.rs b/src/impl-x86-sysv.rs index ef5e99a..a155ca3 100644 --- a/src/impl-x86-sysv.rs +++ b/src/impl-x86-sysv.rs @@ -26,6 +26,11 @@ impl VaPrimitive for *const T { ::get(list) as *const T } } +impl VaPrimitive for *mut T { + unsafe fn get(list: &mut VaList) -> Self { + ::get(list) as *mut T + } +} impl VaPrimitive for usize { unsafe fn get(l: &mut VaList) -> Self { l.get_raw() diff --git a/src/impl-x86_64-elf.rs b/src/impl-x86_64-elf.rs index e0fffd6..feb85f4 100644 --- a/src/impl-x86_64-elf.rs +++ b/src/impl-x86_64-elf.rs @@ -73,6 +73,11 @@ impl VaPrimitive for *const T { ::get(list) as *const T } } +impl VaPrimitive for *mut T { + unsafe fn get(list: &mut VaList) -> Self { + ::get(list) as *mut T + } +} macro_rules! impl_va_prim { ($u: ty, $s: ty) => { diff --git a/src/impl-x86_64-win64.rs b/src/impl-x86_64-win64.rs index 49a78ff..bff571a 100644 --- a/src/impl-x86_64-win64.rs +++ b/src/impl-x86_64-win64.rs @@ -22,6 +22,11 @@ impl VaPrimitive for *const T { ::get(list) as *const T } } +impl VaPrimitive for *mut T { + unsafe fn get(list: &mut VaList) -> Self { + ::get(list) as *mut T + } +} impl VaPrimitive for usize { unsafe fn get(l: &mut VaList) -> Self { l.get_raw() -- GitLab