Browse Source

move constructor/destructor to top of class

B. Petersen 5 years ago
parent
commit
bbb14becfa
1 changed files with 35 additions and 34 deletions
  1. 35 34
      deltachat-ios/DC/Wrapper.swift

+ 35 - 34
deltachat-ios/DC/Wrapper.swift

@@ -306,15 +306,19 @@ class DcConfig {
 class DcChatlist {
 class DcChatlist {
     private var chatListPointer: OpaquePointer?
     private var chatListPointer: OpaquePointer?
 
 
-    var length: Int {
-        return dc_chatlist_get_cnt(chatListPointer)
-    }
-
     // takes ownership of specified pointer
     // takes ownership of specified pointer
     init(chatListPointer: OpaquePointer?) {
     init(chatListPointer: OpaquePointer?) {
         self.chatListPointer = chatListPointer
         self.chatListPointer = chatListPointer
     }
     }
 
 
+    deinit {
+        dc_chatlist_unref(chatListPointer)
+    }
+
+    var length: Int {
+        return dc_chatlist_get_cnt(chatListPointer)
+    }
+
     func getChatId(index: Int) -> Int {
     func getChatId(index: Int) -> Int {
         return Int(dc_chatlist_get_chat_id(chatListPointer, index))
         return Int(dc_chatlist_get_chat_id(chatListPointer, index))
     }
     }
@@ -329,15 +333,23 @@ class DcChatlist {
         }
         }
         return DcLot(lotPointer)
         return DcLot(lotPointer)
     }
     }
-
-    deinit {
-        dc_chatlist_unref(chatListPointer)
-    }
 }
 }
 
 
 class DcChat {
 class DcChat {
     var chatPointer: OpaquePointer?
     var chatPointer: OpaquePointer?
 
 
+    init(id: Int) {
+        if let p = dc_get_chat(mailboxPointer, UInt32(id)) {
+            chatPointer = p
+        } else {
+            fatalError("Invalid chatID opened \(id)")
+        }
+    }
+
+    deinit {
+        dc_chat_unref(chatPointer)
+    }
+
     var id: Int {
     var id: Int {
         return Int(dc_chat_get_id(chatPointer))
         return Int(dc_chat_get_id(chatPointer))
     }
     }
@@ -394,22 +406,18 @@ class DcChat {
         }
         }
         return nil
         return nil
     }
     }
+}
+
+class DcMsg: MessageType {
+    private var messagePointer: OpaquePointer?
 
 
     init(id: Int) {
     init(id: Int) {
-        if let p = dc_get_chat(mailboxPointer, UInt32(id)) {
-            chatPointer = p
-        } else {
-            fatalError("Invalid chatID opened \(id)")
-        }
+        messagePointer = dc_get_msg(mailboxPointer, UInt32(id))
     }
     }
 
 
     deinit {
     deinit {
-        dc_chat_unref(chatPointer)
+        dc_msg_unref(messagePointer)
     }
     }
-}
-
-class DcMsg: MessageType {
-    private var messagePointer: OpaquePointer?
 
 
     lazy var sender: SenderType = {
     lazy var sender: SenderType = {
         Sender(id: "\(fromContactId)", displayName: fromContact.name)
         Sender(id: "\(fromContactId)", displayName: fromContact.name)
@@ -609,10 +617,6 @@ class DcMsg: MessageType {
         return dc_msg_is_info(messagePointer) == 1
         return dc_msg_is_info(messagePointer) == 1
     }
     }
 
 
-    init(id: Int) {
-        messagePointer = dc_get_msg(mailboxPointer, UInt32(id))
-    }
-
     func summary(chars: Int) -> String? {
     func summary(chars: Int) -> String? {
         guard let result = dc_msg_get_summarytext(messagePointer, Int32(chars)) else { return nil }
         guard let result = dc_msg_get_summarytext(messagePointer, Int32(chars)) else { return nil }
 
 
@@ -623,15 +627,19 @@ class DcMsg: MessageType {
         let chatId = dc_create_chat_by_msg_id(mailboxPointer, UInt32(id))
         let chatId = dc_create_chat_by_msg_id(mailboxPointer, UInt32(id))
         return DcChat(id: Int(chatId))
         return DcChat(id: Int(chatId))
     }
     }
-
-    deinit {
-        dc_msg_unref(messagePointer)
-    }
 }
 }
 
 
 class DcContact {
 class DcContact {
     private var contactPointer: OpaquePointer?
     private var contactPointer: OpaquePointer?
 
 
+    init(id: Int) {
+        contactPointer = dc_get_contact(mailboxPointer, UInt32(id))
+    }
+
+    deinit {
+        dc_contact_unref(contactPointer)
+    }
+
     var nameNAddr: String {
     var nameNAddr: String {
         return String(cString: dc_contact_get_name_n_addr(contactPointer))
         return String(cString: dc_contact_get_name_n_addr(contactPointer))
     }
     }
@@ -680,14 +688,6 @@ class DcContact {
         return Int(dc_contact_get_id(contactPointer))
         return Int(dc_contact_get_id(contactPointer))
     }
     }
 
 
-    init(id: Int) {
-        contactPointer = dc_get_contact(mailboxPointer, UInt32(id))
-    }
-
-    deinit {
-        dc_contact_unref(contactPointer)
-    }
-
     func block() {
     func block() {
         dc_block_contact(mailboxPointer, UInt32(id), 1)
         dc_block_contact(mailboxPointer, UInt32(id), 1)
     }
     }
@@ -704,6 +704,7 @@ class DcContact {
 class DcLot {
 class DcLot {
     private var dcLotPointer: OpaquePointer?
     private var dcLotPointer: OpaquePointer?
 
 
+    // takes ownership of specified pointer
     init(_ dcLotPointer: OpaquePointer) {
     init(_ dcLotPointer: OpaquePointer) {
         self.dcLotPointer = dcLotPointer
         self.dcLotPointer = dcLotPointer
     }
     }