diff src/shnplug/array.c @ 1305:51bf0e431e02

Add SHNplug.
author William Pitcock <nenolod@atheme-project.org>
date Fri, 20 Jul 2007 10:29:54 -0500
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/shnplug/array.c	Fri Jul 20 10:29:54 2007 -0500
@@ -0,0 +1,40 @@
+/******************************************************************************
+*                                                                             *
+*  Copyright (C) 1992-1995 Tony Robinson                                      *
+*                                                                             *
+*  See the file doc/LICENSE.shorten for conditions on distribution and usage  *
+*                                                                             *
+******************************************************************************/
+
+/*
+ * $Id: array.c,v 1.7 2003/08/26 05:34:04 jason Exp $
+ */
+
+#include <stdio.h>
+#include <stdlib.h>
+#include "shorten.h"
+
+void *pmalloc(ulong size, shn_file *this_shn) {
+  void *ptr;
+
+  ptr = malloc(size);
+
+  if(ptr == NULL)
+    shn_error_fatal(this_shn,"Call to malloc(%ld) failed in pmalloc() -\nyour system may be low on memory", size);
+
+  return(ptr);
+}
+
+slong **long2d(ulong n0, ulong n1, shn_file *this_shn) {
+  slong **array0 = NULL;
+
+  if((array0 = (slong**) pmalloc((ulong) (n0 * sizeof(slong*) +
+					 n0 * n1 * sizeof(slong)),this_shn)) != NULL ) {
+    slong *array1 = (slong*) (array0 + n0);
+    int i;
+
+    for(i = 0; i < n0; i++)
+      array0[i] = array1 + i * n1;
+  }
+  return(array0);
+}