aboutsummaryrefslogtreecommitdiffstatsci
diff options
context:
space:
mode:
authorJean-Philippe Bruyère <jp_bruyere@hotmail.com>2021-12-04 04:35:41 +0100
committerJean-Philippe Bruyère <jp_bruyere@hotmail.com>2021-12-04 04:35:41 +0100
commitd0bc93bb44e56ad29ae5e3c5b4e79ef624f82ba8 (patch)
tree5d85c2cf93e7d28f2064a2022c4ab43d548657e0
parentba592ca9099fe4e378692bd2e8c953de90a4beb5 (diff)
object.PinPointer
-rw-r--r--vulkan/ExtensionMethods.cs6
-rw-r--r--vulkan/Utf8StringPointer.cs2
2 files changed, 7 insertions, 1 deletions
diff --git a/vulkan/ExtensionMethods.cs b/vulkan/ExtensionMethods.cs
index 4102f07..6f31329 100644
--- a/vulkan/ExtensionMethods.cs
+++ b/vulkan/ExtensionMethods.cs
@@ -74,6 +74,12 @@ namespace Vulkan {
handles.Add (hnd.AddrOfPinnedObject (), hnd);
return hnd.AddrOfPinnedObject ();
}
+ public static IntPtr PinPointer (this object obj) {
+ GCHandle hnd = GCHandle.Alloc (obj, GCHandleType.Pinned);
+ handles.Add (hnd.AddrOfPinnedObject (), hnd);
+ return hnd.AddrOfPinnedObject ();
+ }
+
//pin with pinning context
public static IntPtr Pin (this object obj, PinnedObjects ctx) {
diff --git a/vulkan/Utf8StringPointer.cs b/vulkan/Utf8StringPointer.cs
index 93ae3d3..943fe75 100644
--- a/vulkan/Utf8StringPointer.cs
+++ b/vulkan/Utf8StringPointer.cs
@@ -12,7 +12,7 @@ namespace Vulkan
Utf8StringPointer (IntPtr ptr) {
handle = ptr;
}
- public Utf8StringPointer (string str) {
+ Utf8StringPointer (string str) {
handle = str.PinPointer();
}
public static implicit operator string (Utf8StringPointer pt)