summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAdrian Thurston <thurston@colm.net>2018-06-18 09:55:53 +0700
committerAdrian Thurston <thurston@colm.net>2018-06-18 09:55:53 +0700
commitd83bedd9144c55d949993f538a50d2a246a8de92 (patch)
treed751ef8abe4e1a7fb7e1e6e292f816ca6670b74e /src
parentc932e9374df3be4e91723ef7584a6693157e1e26 (diff)
downloadcolm-d83bedd9144c55d949993f538a50d2a246a8de92.tar.gz
added destructor to stream functions
Diffstat (limited to 'src')
-rw-r--r--src/ctinput.cc10
-rw-r--r--src/input.c14
-rw-r--r--src/input.h4
3 files changed, 26 insertions, 2 deletions
diff --git a/src/ctinput.cc b/src/ctinput.cc
index c1840096..6aea70ce 100644
--- a/src/ctinput.cc
+++ b/src/ctinput.cc
@@ -82,6 +82,10 @@ LangEl *inputStreamPatternGetLangEl( struct stream_impl_ct *ss, long *bindId,
return klangEl;
}
+void inputStreamPatternDestructor( struct stream_impl_ct *ss )
+{
+}
+
int inputStreamPatternGetParseBlock( struct stream_impl_ct *ss, int skip,
char **pdp, int *copied )
{
@@ -223,6 +227,7 @@ int inputStreamPatternUndoConsumeData( struct stream_impl_ct *ss, const char *da
stream_funcs patternFuncs =
{
+ (destructor_t) &inputStreamPatternDestructor,
(get_parse_block_t) &inputStreamPatternGetParseBlock,
(get_data_t) &inputStreamPatternGetData,
(consume_data_t) &inputStreamPatternConsumeData,
@@ -274,6 +279,10 @@ LangEl *inputStreamConsGetLangEl( struct stream_impl_ct *ss, long *bindId, char
return klangEl;
}
+void inputStreamConsDestructor( struct stream_impl_ct *ss )
+{
+}
+
int inputStreamConsGetParseBlock( struct stream_impl_ct *ss,
int skip, char **pdp, int *copied )
{
@@ -428,6 +437,7 @@ int inputStreamConsUndoConsumeData( struct stream_impl_ct *ss, const char *data,
stream_funcs replFuncs =
{
+ (destructor_t) &inputStreamConsDestructor,
(get_parse_block_t) &inputStreamConsGetParseBlock,
(get_data_t) &inputStreamConsGetData,
(consume_data_t) &inputStreamConsConsumeData,
diff --git a/src/input.c b/src/input.c
index 3b1ec8b9..24e02a40 100644
--- a/src/input.c
+++ b/src/input.c
@@ -316,6 +316,9 @@ static int data_get_data( struct stream_impl_data *ss, char *dest, int length )
return copied;
}
+static void data_destructor( struct stream_impl_data *si )
+{
+}
static int data_get_parse_block( struct stream_impl_data *ss, int skip, char **pdp, int *copied )
{
@@ -599,6 +602,10 @@ static void stream_unset_eof( struct stream_impl_seq *is )
}
}
+static void stream_destructor( struct stream_impl_seq *is )
+{
+}
+
static int stream_get_parse_block( struct stream_impl_seq *is, int skip, char **pdp, int *copied )
{
int ret = 0;
@@ -1133,6 +1140,7 @@ static tree_t *stream_undo_append_stream( struct stream_impl_seq *is )
struct stream_funcs stream_funcs =
{
+ (destructor_t) &stream_destructor,
(get_parse_block_t) &stream_get_parse_block,
(get_data_t) &stream_get_data,
(consume_data_t) &stream_consume_data,
@@ -1160,8 +1168,9 @@ struct stream_funcs stream_funcs =
struct stream_funcs file_funcs =
{
- .get_data = (get_data_t) &data_get_data,
+ .destructor = (destructor_t) &data_destructor,
.get_parse_block = (get_parse_block_t) &data_get_parse_block,
+ .get_data = (get_data_t) &data_get_data,
.consume_data = (consume_data_t) &data_consume_data,
.undo_consume_data = (undo_consume_data_t) &data_undo_consume_data,
.get_data_source = (get_data_source_t) &file_get_data_source,
@@ -1169,8 +1178,9 @@ struct stream_funcs file_funcs =
struct stream_funcs text_funcs =
{
- .get_data = (get_data_t) &data_get_data,
+ .destructor = (destructor_t) &data_destructor,
.get_parse_block = (get_parse_block_t) &data_get_parse_block,
+ .get_data = (get_data_t) &data_get_data,
.consume_data = (consume_data_t) &data_consume_data,
.undo_consume_data = (undo_consume_data_t) &data_undo_consume_data,
.get_data_source = (get_data_source_t) &text_get_data_source,
diff --git a/src/input.h b/src/input.h
index 496b962f..b3a80614 100644
--- a/src/input.h
+++ b/src/input.h
@@ -75,6 +75,8 @@ struct run_buf
struct run_buf *new_run_buf( int sz );
+typedef void (*destructor_t)( struct stream_impl *si );
+
typedef int (*get_parse_block_t)( struct stream_impl *si, int skip, char **pdp, int *copied );
/* Probably this should be replaced with get_parse_block calls. */
@@ -122,6 +124,8 @@ typedef struct colm_tree *(*undo_append_stream_t)( struct stream_impl *si );
struct stream_funcs
{
+ destructor_t destructor;
+
int (*get_parse_block)( struct stream_impl *si, int skip, char **pdp, int *copied );
int (*get_data)( struct stream_impl *si, char *dest, int length );