@@ -81,11 +81,12 @@ public static List<EventHandler> GetEventCallbacks(string event_name)
8181
8282 public static unsafe ( EventResult , Event ) TriggerEvent ( string event_name , params object [ ] args )
8383 {
84- IntPtr [ ] a = Invoker . CallNative < IntPtr [ ] > ( "_G" , "TriggerEventInternal" , CallKind . Function , event_name , JsonSerializer . Serialize ( args ) ) ;
84+ IntPtr [ ] a = Invoker . CallNative < IntPtr [ ] > ( "_G" , "TriggerEventInternal" , CallKind . Function , event_name , JsonSerializer . Serialize ( args ) ) ?? [ IntPtr . Zero , IntPtr . Zero ] ;
8585
8686 byte * p = ( byte * ) a [ 0 ] ;
87+ byte * pptr = ( byte * ) & p ;
8788 Type evResult = typeof ( EventResult ) ;
88- EventResult res = ( EventResult ) CallContext . ReadValue ( ref evResult , ref p ) ;
89+ EventResult res = ( EventResult ) CallContext . ReadValue ( ref evResult , ref pptr ) ;
8990 Event ev = new ( a [ 1 ] ) ;
9091
9192 return ( res , ev ) ;
@@ -154,9 +155,13 @@ public string GetString(string key)
154155 {
155156 return Internal_API . Invoker . CallNative < string > ( "Event" , "GetString" , Internal_API . CallKind . ClassFunction , m_classData , key ) ?? "" ;
156157 }
157- public T ? GetReturn < T > ( )
158+ public unsafe T ? GetReturn < T > ( )
158159 {
159- return Internal_API . Invoker . CallNative < T > ( "Event" , "GetReturn" , Internal_API . CallKind . ClassFunction , m_classData ) ;
160+ IntPtr val = Internal_API . Invoker . CallNative < IntPtr > ( "Event" , "GetReturn" , Internal_API . CallKind . ClassFunction , m_classData ) ;
161+ byte * p = ( byte * ) val ;
162+ byte * tp = ( byte * ) & p ;
163+ Type t = typeof ( T ) ;
164+ return ( T ? ) CallContext . ReadValue ( ref t , ref tp ) ;
160165 }
161166 public void SetReturn ( object value )
162167 {
@@ -242,9 +247,13 @@ public Memory GetHookPointer(uint index)
242247 {
243248 return Internal_API . Invoker . CallNative < Memory > ( "Event" , "GetHookPointer" , Internal_API . CallKind . ClassFunction , m_classData , index ) ?? new ( ) ;
244249 }
245- public T ? GetHookReturn < T > ( )
250+ public unsafe T ? GetHookReturn < T > ( )
246251 {
247- return Internal_API . Invoker . CallNative < T > ( "Event" , "GetHookReturn" , Internal_API . CallKind . ClassFunction , m_classData ) ;
252+ IntPtr val = Internal_API . Invoker . CallNative < IntPtr > ( "Event" , "GetHookReturn" , Internal_API . CallKind . ClassFunction , m_classData ) ;
253+ byte * p = ( byte * ) val ;
254+ byte * tp = ( byte * ) & p ;
255+ Type t = typeof ( T ) ;
256+ return ( T ? ) CallContext . ReadValue ( ref t , ref tp ) ;
248257 }
249258 public void SetHookReturn ( object value )
250259 {
0 commit comments