shithub: sox

Download patch

ref: da3611335323f0ce85d5cfbe6a5ebedb03b160b4
parent: bf4f2ae85985b8931d6ed4994503e9cebe9f84a0
author: rrt <rrt>
date: Wed Dec 13 10:06:15 EST 2006

Actually check in xmalloc.c. Oops.

--- /dev/null
+++ b/src/xmalloc.c
@@ -1,0 +1,58 @@
+/* Memory allocation functions
+   Copyright (c) 2005-2006 Reuben Thomas.
+   All rights reserved.
+
+   This file is part of SoX.
+
+   SoX is free software; you can redistribute it and/or modify it under
+   the terms of the GNU General Public License as published by the Free
+   Software Foundation; either version 2, or (at your option) any later
+   version.
+
+   SoX is distributed in the hope that it will be useful, but WITHOUT ANY
+   WARRANTY; without even the implied warranty of MERCHANTABILITY or
+   FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+   for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with SoX; see the file COPYING.  If not, write to the Free
+   Software Foundation, Fifth Floor, 51 Franklin Street, Boston, MA
+   02111-1301, USA.  */
+
+#include "st_i.h"
+
+#include <stdlib.h>
+#include <string.h>
+
+#include "xmalloc.h"
+
+
+/*
+ * Resize an allocated memory area; abort if not possible.
+ */
+void *xrealloc(void *ptr, size_t newsize)
+{
+  /* Behaviour in this case is unspecified for malloc */
+  if (newsize == 0)
+    return NULL;
+
+  if ((ptr = realloc(ptr, newsize)) == NULL) {
+    st_fail("out of memory");
+    exit(2);
+  }
+
+  return ptr;
+}
+
+/*
+ * Perform a calloc, and abort if not possible.
+ */
+void *xcalloc(size_t nmemb, size_t size)
+{
+  void *ptr = calloc(nmemb, size);
+
+  if (ptr == NULL)
+    st_fail("out of memory");
+
+  return ptr;
+}