* @param m size of the second dimension
* @param type name of the struct or union, i.e. pass 'struct Foo'.
*/
-#define GNUNET_new_array_2d(n, m, type) (type **) GNUNET_xnew_array_2d_ (n, m, sizeof (type))
+#define GNUNET_new_array_2d(n, m, type) (type **) GNUNET_xnew_array_2d_ (n, m, sizeof (type), __FILE__, __LINE__)
/**
* @ingroup memory
* @param o size of the third dimension
* @param type name of the struct or union, i.e. pass 'struct Foo'.
*/
-#define GNUNET_new_array_3d(n, m, o, type) (type ***) GNUNET_xnew_array_3d_ (n, m, o, sizeof (type))
+#define GNUNET_new_array_3d(n, m, o, type) (type ***) GNUNET_xnew_array_3d_ (n, m, o, sizeof (type), __FILE__, __LINE__)
/**
* @ingroup memory
* @param n size of the first dimension
* @param m size of the second dimension
* @param elementSize size of a single element in bytes
+ * @param filename where is this call being made (for debugging)
+ * @param linenumber line where this call is being made (for debugging)
* @return allocated memory, never NULL
*/
void **
-GNUNET_xnew_array_2d_ (size_t n, size_t m, size_t elementSize);
+GNUNET_xnew_array_2d_ (size_t n, size_t m, size_t elementSize,
+ const char *filename, int linenumber);
/**
* @param m size of the second dimension
* @param o size of the third dimension
* @param elementSize size of a single element in bytes
+ * @param filename where is this call being made (for debugging)
+ * @param linenumber line where this call is being made (for debugging)
* @return allocated memory, never NULL
*/
void ***
-GNUNET_xnew_array_3d_ (size_t n, size_t m, size_t o, size_t elementSize);
+GNUNET_xnew_array_3d_ (size_t n, size_t m, size_t o, size_t elementSize,
+ const char *filename, int linenumber);
/**