summaryrefslogtreecommitdiff
path: root/apl9.h
diff options
context:
space:
mode:
Diffstat (limited to 'apl9.h')
-rw-r--r--apl9.h11
1 files changed, 9 insertions, 2 deletions
diff --git a/apl9.h b/apl9.h
index 64f7eba..7c44980 100644
--- a/apl9.h
+++ b/apl9.h
@@ -46,6 +46,7 @@ struct Array
int *shape;
int size;
int stranded; /* 1 if build directly by stranding */
+ int refs; /* reference counting */
union {
char *rawdata;
vlong *intdata;
@@ -111,7 +112,6 @@ Rune *pparray(Array *);
Statement *lexline(Rune *);
/* array.c */
-Array *mkarray(int, int, int);
Array *mkscalarint(vlong);
Array *duparray(Array *);
int simplearray(Array *);
@@ -123,8 +123,14 @@ Datum *eval(Statement *);
/* symbol.c */
Symbol *getsym(Symtab *, Rune *);
Symtab *newsymtab(void);
+void freesymtab(Symtab *);
vlong globalIO(void);
+/* memory.c */
+Array *allocarray(int, int, int);
+void freearray(Array *);
+void incref(Array *);
+
/* Monadic functions from functions.h */
Array *fnSame(Array *);
Array *fnTally(Array *);
@@ -151,4 +157,5 @@ extern Rune primhybridnames[]; /* lexer.c */
extern fnmonad monadfunctiondefs[]; /* function.c */
extern fndyad dyadfunctiondefs[]; /* function.c */
extern Symtab *globalsymtab; /* symbol.c */
-extern Symtab *currentsymtab; /* symbol.c */ \ No newline at end of file
+extern Symtab *currentsymtab; /* symbol.c */
+extern int alloccounts; /* memory.c */ \ No newline at end of file