#ifndef MEMINFO_H
#define MEMINFO_H
+#include <time.h>
+
/**
- * Nodo de la lista.
+ * Información sobre la memoria.
*/
typedef struct {
+ /** Puntero a la memoria reservada. */
void* pointer;
+ /** Cantidad de bytes reservados. */
size_t bytes;
+ /** Fecha en la que se reservó. */
time_t time;
+ /** Nombre del archivo de donde se reservó. */
char* filename;
+ /** Línea en la que se reservó. */
size_t fileline;
} MemInfo;
-MemInfo* MemInfo_new(void* ptr, size_t bytes, char* fname, size_t fline) {
- /* Aloco memoria. */
- MemInfo* mi = (MemInfo*)malloc(sizeof(MemInfo));
- /* Si la obtuve, inicializo con los datos y la hora actual. */
- if (mi) {
- mi->pointer = ptr;
- mi->bytes = bytes;
- mi->time = time();
- mi->filename = fname;
- mi->fileline = fline;
- }
- /* Devuelvo el nuevo puntero. */
- return mi;
-}
+/**
+ * Crea un nuevo MemInfo.
+ *
+ * \param ptr Puntero a un área de memoria.
+ * \param bytes Cantidad de bytes reservados.
+ * \param fname Nombre del archivo de donde se reservó.
+ * \param fline Línea en donde se reservó.
+ *
+ * \return Puntero al nuevo MemInfo o NULL si no hay espacio en la memoria.
+ */
+MemInfo* MemInfo_new(void* ptr, size_t bytes, const char* fname, size_t fline);
+
+/**
+ * Elimina un MemInfo.
+ *
+ * \param mi MemInfo a eliminar.
+ */
+void MemInfo_delete(MemInfo* mi);
#endif /* MEMINFO_H */