From 9feccbe537a901f4e49111f175c621c7ffc87b72 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=B6nke=20Ludwig?= Date: Sat, 13 Apr 2019 17:25:47 +0200 Subject: [PATCH] Fix missing nogc annotations for userData accessors. User data only compiled successfully for sockets before this change. --- source/eventcore/driver.d | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/source/eventcore/driver.d b/source/eventcore/driver.d index c501341..e5e13a0 100644 --- a/source/eventcore/driver.d +++ b/source/eventcore/driver.d @@ -466,8 +466,8 @@ interface EventDriverFiles { @property final ref T userData(T)(FileFD descriptor) @trusted { import std.conv : emplace; - static void init(void* ptr) { emplace(cast(T*)ptr); } - static void destr(void* ptr) { destroy(*cast(T*)ptr); } + static void init(void* ptr) @nogc { emplace(cast(T*)ptr); } + static void destr(void* ptr) @nogc { destroy(*cast(T*)ptr); } return *cast(T*)rawUserData(descriptor, T.sizeof, &init, &destr); } @@ -524,8 +524,8 @@ interface EventDriverEvents { @property final ref T userData(T)(EventID descriptor) @trusted { import std.conv : emplace; - static void init(void* ptr) { emplace(cast(T*)ptr); } - static void destr(void* ptr) { destroy(*cast(T*)ptr); } + static void init(void* ptr) @nogc { emplace(cast(T*)ptr); } + static void destr(void* ptr) @nogc { destroy(*cast(T*)ptr); } return *cast(T*)rawUserData(descriptor, T.sizeof, &init, &destr); } @@ -610,8 +610,8 @@ interface EventDriverTimers { @property final ref T userData(T)(TimerID descriptor) @trusted { import std.conv : emplace; - static void init(void* ptr) { emplace(cast(T*)ptr); } - static void destr(void* ptr) { destroy(*cast(T*)ptr); } + static void init(void* ptr) @nogc { emplace(cast(T*)ptr); } + static void destr(void* ptr) @nogc { destroy(*cast(T*)ptr); } return *cast(T*)rawUserData(descriptor, T.sizeof, &init, &destr); } @@ -643,8 +643,8 @@ interface EventDriverWatchers { @property final ref T userData(T)(WatcherID descriptor) @trusted { import std.conv : emplace; - static void init(void* ptr) { emplace(cast(T*)ptr); } - static void destr(void* ptr) { destroy(*cast(T*)ptr); } + static void init(void* ptr) @nogc { emplace(cast(T*)ptr); } + static void destr(void* ptr) @nogc { destroy(*cast(T*)ptr); } return *cast(T*)rawUserData(descriptor, T.sizeof, &init, &destr); } @@ -716,8 +716,8 @@ interface EventDriverProcesses { @property final ref T userData(T)(ProcessID descriptor) @trusted { import std.conv : emplace; - static void init(void* ptr) { emplace(cast(T*)ptr); } - static void destr(void* ptr) { destroy(*cast(T*)ptr); } + static void init(void* ptr) @nogc { emplace(cast(T*)ptr); } + static void destr(void* ptr) @nogc { destroy(*cast(T*)ptr); } return *cast(T*)rawUserData(descriptor, T.sizeof, &init, &destr); } @@ -791,8 +791,8 @@ interface EventDriverPipes { @property final ref T userData(T)(PipeFD descriptor) @trusted { import std.conv : emplace; - static void init(void* ptr) { emplace(cast(T*)ptr); } - static void destr(void* ptr) { destroy(*cast(T*)ptr); } + static void init(void* ptr) @nogc { emplace(cast(T*)ptr); } + static void destr(void* ptr) @nogc { destroy(*cast(T*)ptr); } return *cast(T*)rawUserData(descriptor, T.sizeof, &init, &destr); }