#define SWITCH_READ_ACCEPTABLE(status) (status == SWITCH_STATUS_SUCCESS || status == SWITCH_STATUS_BREAK)
SWITCH_DECLARE(size_t) switch_url_encode(char *url, char *buf, size_t len);
SWITCH_DECLARE(char *) switch_url_decode(char *s);
+
+/* malloc or DIE macros */
+#ifdef NDEBUG
+#define switch_malloc(ptr, len) (void)( (!!(ptr = malloc(len))) || (fprintf(stderr,"ABORT! Malloc failure at: %s:%s", __FILE__, __LINE__),abort(), 0), ptr )
+#define switch_zmalloc(ptr, len) (void)( (!!(ptr = malloc(len))) || (fprintf(stderr,"ABORT! Malloc failure at: %s:%s", __FILE__, __LINE__),abort(), 0), memset(ptr, 0, len))
+#else
+#define switch_malloc(ptr, len) (void)(assert(((ptr) = malloc((len)))),ptr)
+#define switch_zmalloc(ptr, len) (void)(assert((ptr = malloc(len))),memset(ptr, 0, len))
+#endif
+
SWITCH_END_EXTERN_C
#endif
switch_core_scheduler_task_container_t *container, *tp;
switch_mutex_lock(runtime.task_mutex);
- assert((container = malloc(sizeof(*container))));
- memset(container, 0, sizeof(*container));
+ switch_zmalloc(container, sizeof(*container));
assert(func);
container->func = func;
time(&container->task.created);
struct hangup_helper *helper;
size_t len = sizeof(*helper);
- assert((helper = malloc(len)));
- memset(helper, 0, len);
+ switch_zmalloc(helper, len);
switch_copy_string(helper->uuid_str, uuid, sizeof(helper->uuid_str));
helper->cause = cause;
len += strlen(context) + 1;
}
- assert((helper = malloc(len)));
- memset(helper, 0, len);
-
+ switch_zmalloc(helper, len);
+
switch_copy_string(helper->uuid_str, uuid, sizeof(helper->uuid_str));
cur = (char *) helper + sizeof(*helper);
struct broadcast_helper *helper;
size_t len = sizeof(*helper) + strlen(path) + 1;
- assert((helper = malloc(len)));
- memset(helper, 0, len);
-
+ switch_zmalloc(helper, len);
+
switch_copy_string(helper->uuid_str, uuid, sizeof(helper->uuid_str));
helper->flags = flags;
helper->path = (char *) helper + sizeof(*helper);