@@ -3069,7 +3069,6 @@ public void UnWatch(string watchid)
30693069 string error = Marshal . PtrToStringAnsi ( responseWrapper . error ) ?? string . Empty ;
30703070 bool success = responseWrapper . success ;
30713071 free_unwatch_response ( response ) ;
3072- DelegateRegistry . TryRemoveCallback < WatchEvent > ( watchid , out var eventHandler ) ;
30733072 if ( ! success )
30743073 {
30753074 throw new ClientError ( error ) ;
@@ -3260,7 +3259,6 @@ public void UnRegisterQueue(string queuename)
32603259 var error = Marshal . PtrToStringAnsi ( responseWrapper . error ) ?? "Unknown error" ;
32613260 var success = responseWrapper . success ;
32623261 free_unregister_queue_response ( response ) ;
3263- DelegateRegistry . TryRemoveCallback < QueueEvent > ( queuename , out var eventHandler ) ;
32643262 if ( ! success )
32653263 {
32663264 throw new ClientError ( error ) ;
@@ -3271,15 +3269,15 @@ public void UnRegisterQueue(string queuename)
32713269 Marshal . FreeHGlobal ( queuenamePtr ) ;
32723270 }
32733271 }
3274- public async Task QueueMessage ( string data , string queuename = "" , string exchangename = "" , string replyto = "" , string routingkey = "" , string correlation_id = "" , bool striptoken = false , int expiration = 0 )
3272+ public async Task QueueMessage ( string data , string queuename = "" , string exchangename = "" , string routingkey = "" , string correlation_id = "" , bool striptoken = false , int expiration = 0 )
32753273 {
32763274 var tcs = new TaskCompletionSource < string > ( ) ;
32773275 IntPtr dataPtr = Marshal . StringToHGlobalAnsi ( data ) ;
32783276 IntPtr queuenamePtr = Marshal . StringToHGlobalAnsi ( queuename ) ;
3279- IntPtr exchangenamePtr = Marshal . StringToHGlobalAnsi ( exchangename ) ;
3280- IntPtr replytoPtr = Marshal . StringToHGlobalAnsi ( replyto ) ;
3277+ IntPtr exchangenamePtr = Marshal . StringToHGlobalAnsi ( exchangename ) ;
32813278 IntPtr routingkeyPtr = Marshal . StringToHGlobalAnsi ( routingkey ) ;
3282- IntPtr correlation_idPtr = Marshal . StringToHGlobalAnsi ( correlation_id ) ;
3279+ IntPtr replytoPtr = IntPtr . Zero ;
3280+ IntPtr correlation_idPtr = IntPtr . Zero ;
32833281
32843282 try
32853283 {
@@ -3333,11 +3331,10 @@ void Callback(IntPtr responsePtr)
33333331 Marshal . FreeHGlobal ( dataPtr ) ;
33343332 Marshal . FreeHGlobal ( queuenamePtr ) ;
33353333 Marshal . FreeHGlobal ( exchangenamePtr ) ;
3336- Marshal . FreeHGlobal ( replytoPtr ) ;
33373334 Marshal . FreeHGlobal ( routingkeyPtr ) ;
3338- Marshal . FreeHGlobal ( correlation_idPtr ) ;
3335+ if ( replytoPtr != IntPtr . Zero ) Marshal . FreeHGlobal ( replytoPtr ) ;
3336+ if ( correlation_idPtr != IntPtr . Zero ) Marshal . FreeHGlobal ( correlation_idPtr ) ;
33393337 }
3340- await tcs . Task ;
33413338 }
33423339
33433340
0 commit comments