DIST_FILES = Makefile src/plproxy.h src/rowstamp.h src/scanner.l src/parser.y \
sql/*.sql expected/*.out config/*.sql doc/*.txt doc/Makefile \
- AUTHORS COPYRIGHT README plproxy.sql.in NEWS debian/packages
+ AUTHORS COPYRIGHT README plproxy.sql.in NEWS debian/packages \
+ src/dbgmalloc.h
DIST_DIRS = src sql expected config doc debian
TARNAME = plproxy-$(PLPROXY_VERSION)
cd src; $(FLEX) -oscanner.c scanner.l
# dependencies
-$(OBJS): src/plproxy.h src/rowstamp.h
+$(OBJS): src/plproxy.h src/rowstamp.h src/dbgmalloc.h
# utility rules
--- /dev/null
+
+#define MALLOCLOGx
+
+static inline void *my_malloc(const char *pfx, int len) {
+ void *p = palloc(len);
+#ifdef MALLOCLOG
+ elog(NOTICE, "%s:%s(%d) = %p", pfx, __FUNCTION__, len, p);
+#endif
+ return p;
+}
+static inline void *my_realloc(const char *pfx, void *old, int len) {
+ void *p = repalloc(old, len);
+#ifdef MALLOCLOG
+ elog(NOTICE, "%s:%s(%p, %d) = %p", pfx, __FUNCTION__, old, len, p);
+#endif
+ return p;
+}
+static inline void my_free(const char *pfx, void *p) {
+ pfree(p);
+#ifdef MALLOCLOG
+ elog(NOTICE, "%s:%s(%p)", pfx, __FUNCTION__, p);
+#endif
+}
+
+#define malloc(x) my_malloc(__FILE__, x)
+#define realloc(x, y) my_realloc(__FILE__, x, y)
+#define free(x) my_free(__FILE__, x)
+