diff options
Diffstat (limited to 'mono/Connection.cs')
-rw-r--r-- | mono/Connection.cs | 15 |
1 files changed, 8 insertions, 7 deletions
diff --git a/mono/Connection.cs b/mono/Connection.cs index 5e25ffd6..fad0dc56 100644 --- a/mono/Connection.cs +++ b/mono/Connection.cs @@ -64,15 +64,16 @@ namespace DBus internal static Connection Wrap(IntPtr rawConnection) { if (slot > -1) { - // If we already have a Connection object associated with this rawConnection then return it + // Maybe we already have a Connection object associated with + // this rawConnection then return it IntPtr rawThis = dbus_connection_get_data (rawConnection, slot); - return (DBus.Connection) ((GCHandle)rawThis).Target; - } - else - { - // If it doesn't exist then create a new connection around it - return new Connection(rawConnection); + if (rawThis != IntPtr.Zero) { + return (DBus.Connection) ((GCHandle)rawThis).Target; } + } + + // If it doesn't exist then create a new connection around it + return new Connection(rawConnection); } public int Timeout |