Remove glib, check mem ptr to release allocated memory.
Signed-off-by: Jaeyun <jy1210.jung@samsung.com>
return port;
}
+/**
+ * @brief Free allocated memory.
+ */
+void
+nns_edge_free (void *data)
+{
+ if (data)
+ free (data);
+}
+
/**
* @brief Allocate new memory and copy bytes.
- * @note Caller should release newly allocated memory using free().
+ * @note Caller should release newly allocated memory using nns_edge_free().
*/
void *
nns_edge_memdup (const void *data, size_t size)
/**
* @brief Allocate new memory and copy string.
- * @note Caller should release newly allocated string using free().
+ * @note Caller should release newly allocated string using nns_edge_free().
*/
char *
nns_edge_strdup (const char *str)
/**
* @brief Allocate new memory and print formatted string.
- * @note Caller should release newly allocated string using free().
+ * @note Caller should release newly allocated string using nns_edge_free().
*/
char *
nns_edge_strdup_printf (const char *format, ...)
if (ee->data.destroy_cb)
ee->data.destroy_cb (ee->data.data);
- g_free (ee);
+ SAFE_FREE (ee);
return NNS_EDGE_ERROR_NONE;
}
memset (ed, 0, sizeof (nns_edge_data_s));
ed->magic = NNS_EDGE_MAGIC;
- ed->info_table =
- g_hash_table_new_full (g_str_hash, g_str_equal, g_free, g_free);
+ ed->info_table = g_hash_table_new_full (g_str_hash, g_str_equal,
+ nns_edge_free, nns_edge_free);
*data_h = ed;
return NNS_EDGE_ERROR_NONE;
g_hash_table_destroy (ed->info_table);
- g_free (ed);
+ SAFE_FREE (ed);
return NNS_EDGE_ERROR_NONE;
}
copied->data[i].data = nns_edge_memdup (ed->data[i].data,
ed->data[i].data_len);
copied->data[i].data_len = ed->data[i].data_len;
- copied->data[i].destroy_cb = g_free;
+ copied->data[i].destroy_cb = nns_edge_free;
}
g_hash_table_iter_init (&iter, ed->info_table);
#endif
#define STR_IS_VALID(s) ((s) && (s)[0] != '\0')
+#define SAFE_FREE(p) do { if (p) { free (p); (p) = NULL; } } while (0)
#define NNS_EDGE_MAGIC 0xfeedfeed
#define NNS_EDGE_MAGIC_DEAD 0xdeaddead
*/
int nns_edge_get_available_port (void);
+/**
+ * @brief Free allocated memory.
+ */
+void nns_edge_free (void *data);
+
/**
* @brief Allocate new memory and copy bytes.
- * @note Caller should release newly allocated memory using free().
+ * @note Caller should release newly allocated memory using nns_edge_free().
*/
void *nns_edge_memdup (const void *data, size_t size);
/**
* @brief Allocate new memory and copy string.
- * @note Caller should release newly allocated string using free().
+ * @note Caller should release newly allocated string using nns_edge_free().
*/
char *nns_edge_strdup (const char *str);
/**
* @brief Allocate new memory and print formatted string.
- * @note Caller should release newly allocated string using free().
+ * @note Caller should release newly allocated string using nns_edge_free().
*/
char *nns_edge_strdup_printf (const char *format, ...);
cmd->info.magic = NNS_EDGE_MAGIC_DEAD;
for (i = 0; i < cmd->info.num; i++) {
- if (cmd->mem[i])
- free (cmd->mem[i]);
- cmd->mem[i] = NULL;
+ SAFE_FREE (cmd->mem[i]);
}
}
if (ret != NNS_EDGE_ERROR_NONE) {
for (i = 0; i < n; i++) {
- free (cmd->mem[i]);
- cmd->mem[i] = NULL;
+ SAFE_FREE (cmd->mem[i]);
}
}
g_clear_object (&conn->socket);
}
- g_free (conn->ip);
- g_free (conn);
+ SAFE_FREE (conn->ip);
+ SAFE_FREE (conn);
return true;
}
_nns_edge_close_connection (cdata->sink_conn);
cdata->src_conn = cdata->sink_conn = NULL;
- g_free (cdata);
+ SAFE_FREE (cdata);
}
}
eh = (nns_edge_handle_s *) _tdata->eh;
conn = _tdata->conn;
client_id = _tdata->client_id;
- g_free (_tdata);
+ SAFE_FREE (_tdata);
conn->running = 1;
while (conn->running) {
/* Set client ID in edge data */
val = nns_edge_strdup_printf ("%ld", (long int) client_id);
nns_edge_data_set_info (data_h, "client_id", val);
- g_free (val);
+ SAFE_FREE (val);
for (i = 0; i < cmd.info.num; i++) {
nns_edge_data_add (data_h, cmd.mem[i], cmd.info.mem_size[i], NULL);
nns_edge_loge ("Failed to create message handler thread.");
conn->running = 0;
conn->msg_thread = 0;
- g_free (thread_data);
+ SAFE_FREE (thread_data);
return NNS_EDGE_ERROR_IO;
}
g_socket_listener_accept_socket_async (eh->listener, NULL,
(GAsyncReadyCallback) _nns_edge_accept_socket_async_cb, eh);
- g_free (connected_ip);
+ SAFE_FREE (connected_ip);
}
/**
g_hash_table_destroy (eh->conn_table);
eh->conn_table = NULL;
- g_free (eh->id);
- g_free (eh->topic);
- g_free (eh->ip);
- g_free (eh->recv_ip);
+ SAFE_FREE (eh->id);
+ SAFE_FREE (eh->topic);
+ SAFE_FREE (eh->ip);
+ SAFE_FREE (eh->recv_ip);
+ SAFE_FREE (eh->caps_str);
nns_edge_unlock (eh);
nns_edge_lock_destroy (eh);
- g_free (eh);
+ SAFE_FREE (eh);
return NNS_EDGE_ERROR_NONE;
}
*/
if (0 == g_ascii_strcasecmp (key, "CAPS")) {
ret_str = nns_edge_strdup_printf ("%s%s", _STR_NULL (eh->caps_str), value);
- g_free (eh->caps_str);
+ SAFE_FREE (eh->caps_str);
eh->caps_str = ret_str;
} else if (0 == g_ascii_strcasecmp (key, "IP")) {
- g_free (eh->recv_ip);
+ SAFE_FREE (eh->recv_ip);
eh->recv_ip = nns_edge_strdup (value);
} else if (0 == g_ascii_strcasecmp (key, "PORT")) {
eh->recv_port = g_ascii_strtoll (value, NULL, 10);
} else if (0 == g_ascii_strcasecmp (key, "TOPIC")) {
- g_free (eh->topic);
+ SAFE_FREE (eh->topic);
eh->topic = nns_edge_strdup (value);
} else {
nns_edge_logw ("Failed to set edge info. Unknown key: %s", key);
}
client_id = g_ascii_strtoll (val, NULL, 10);
- g_free (val);
+ SAFE_FREE (val);
conn_data = _nns_edge_get_connection (eh, client_id);
if (!conn_data) {