Added flags

This commit is contained in:
Justin Ethier 2017-08-09 16:12:53 +00:00
parent c24e58f7aa
commit 74eff82805
2 changed files with 14 additions and 0 deletions

1
gc.c
View file

@ -485,6 +485,7 @@ char *gc_copy_obj(object dest, char *obj, gc_thread_data * thd)
type_of(hp) = port_tag;
hp->fp = ((port_type *) obj)->fp;
hp->mode = ((port_type *) obj)->mode;
hp->flags = ((port_type *) obj)->flags;
hp->mem_buf = ((port_type *)obj)->mem_buf;
hp->mem_buf_len = ((port_type *)obj)->mem_buf_len;
return (char *)hp;

View file

@ -778,6 +778,7 @@ typedef struct {
tag_type tag;
FILE *fp;
int mode;
unsigned char flags;
char *mem_buf;
size_t mem_buf_len;
} port_type;
@ -790,6 +791,18 @@ typedef struct {
p.tag = port_tag; \
p.fp = f; \
p.mode = m; \
p.flags = 0; \
p.mem_buf = NULL; \
p.mem_buf_len = 0;
#define make_file_backed_port(p,f,m) \
port_type p; \
p.hdr.mark = gc_color_red; \
p.hdr.grayed = 0; \
p.tag = port_tag; \
p.fp = f; \
p.mode = m; \
p.flags = 1; \
p.mem_buf = NULL; \
p.mem_buf_len = 0;