Changeset 1c674dd664a39c9369914763d636244ba1cfe966
- Timestamp:
- 04/03/10 11:41:26 (3 years ago)
- Author:
- Nedko Arnaudov <nedko@…>
- Children:
- 866d24baaf48377077b4d8bac26343c7e5e201fc
- Parents:
- d4bc1d70728baa026221a9c90fe17c2ed25df1fc
- git-committer:
- Nedko Arnaudov <nedko@arnaudov.name> / 2010-04-03T11:41:26Z+0300
- Message:
-
daemon: fix&improve error handling in ladish_room_create()
- Files:
-
Legend:
- Unmodified
- Added
- Removed
-
|
r7c81ae3
|
r1c674dd
|
|
| 56 | 56 | { |
| 57 | 57 | log_error("malloc() failed to allocate struct ladish_room"); |
| 58 | | return false; |
| | 58 | goto fail; |
| 59 | 59 | } |
| 60 | 60 | |
| … |
… |
|
| 88 | 88 | { |
| 89 | 89 | log_error("strdup() failed for room name"); |
| 90 | | free(room_ptr); |
| 91 | | return false; |
| | 90 | goto free_room; |
| 92 | 91 | } |
| 93 | 92 | |
| 94 | 93 | if (!ladish_graph_create(&room_ptr->graph, object_path)) |
| 95 | 94 | { |
| 96 | | free(room_ptr); |
| 97 | | return false; |
| | 95 | goto free_name; |
| 98 | 96 | } |
| 99 | 97 | |
| … |
… |
|
| 102 | 100 | if (!ladish_graph_copy(ladish_room_get_graph(template), room_ptr->graph)) |
| 103 | 101 | { |
| 104 | | ladish_graph_destroy(room_ptr->graph, true); |
| 105 | | free(room_ptr); |
| 106 | | return false; |
| | 102 | goto destroy_graph; |
| 107 | 103 | } |
| 108 | 104 | } |
| … |
… |
|
| 120 | 116 | { |
| 121 | 117 | log_error("dbus_object_path_new() failed"); |
| 122 | | ladish_graph_destroy(room_ptr->graph, true); |
| 123 | | free(room_ptr); |
| 124 | | return false; |
| | 118 | goto destroy_graph; |
| 125 | 119 | } |
| 126 | 120 | |
| … |
… |
|
| 128 | 122 | { |
| 129 | 123 | log_error("object_path_register() failed"); |
| 130 | | dbus_object_path_destroy(g_dbus_connection, room_ptr->dbus_object); |
| 131 | | ladish_graph_destroy(room_ptr->graph, true); |
| 132 | | free(room_ptr); |
| 133 | | return false; |
| | 124 | goto destroy_dbus_object; |
| 134 | 125 | } |
| 135 | 126 | |
| … |
… |
|
| 143 | 134 | *room_handle_ptr = (ladish_room_handle)room_ptr; |
| 144 | 135 | return true; |
| | 136 | |
| | 137 | destroy_dbus_object: |
| | 138 | dbus_object_path_destroy(g_dbus_connection, room_ptr->dbus_object); |
| | 139 | destroy_graph: |
| | 140 | ladish_graph_destroy(room_ptr->graph, true); |
| | 141 | free_name: |
| | 142 | free(room_ptr->name); |
| | 143 | free_room: |
| | 144 | free(room_ptr); |
| | 145 | fail: |
| | 146 | return false; |
| 145 | 147 | } |
| 146 | 148 | |