diff options
author | Reini Urban <rurban@cpanel.net> | 2016-05-04 08:53:47 +0200 |
---|---|---|
committer | Tina Müller <cpan2@tinita.de> | 2018-07-17 23:08:09 +0200 |
commit | 75eddf785fedc2aeb9bf96db5a9bee97f7e4e72e (patch) | |
tree | d6a230dc193aa40196a7afb815fe2ee9b6b2e4d1 | |
parent | 20496ee288fc0cbb9416a328f39379f69a5667da (diff) | |
download | libyaml-git-75eddf785fedc2aeb9bf96db5a9bee97f7e4e72e.tar.gz |
fix C++-compat error
we cannot malloc to an anon struct in C++.
typedef yaml_anchors_t
-rw-r--r-- | include/yaml.h | 21 | ||||
-rw-r--r-- | src/dumper.c | 2 | ||||
-rw-r--r-- | src/emitter.c | 2 |
3 files changed, 15 insertions, 10 deletions
diff --git a/include/yaml.h b/include/yaml.h index 97f655a..c225908 100644 --- a/include/yaml.h +++ b/include/yaml.h @@ -1517,6 +1517,18 @@ typedef enum yaml_emitter_state_e { YAML_EMIT_END_STATE } yaml_emitter_state_t; + +/* This is needed for C++ */ + +typedef struct yaml_anchors_s { + /** The number of references. */ + int references; + /** The anchor id. */ + int anchor; + /** If the node has been emitted? */ + int serialized; +} yaml_anchors_t; + /** * The emitter structure. * @@ -1742,14 +1754,7 @@ typedef struct yaml_emitter_s { int closed; /** The information associated with the document nodes. */ - struct { - /** The number of references. */ - int references; - /** The anchor id. */ - int anchor; - /** If the node has been emitted? */ - int serialized; - } *anchors; + yaml_anchors_t *anchors; /** The last assigned anchor id. */ int last_anchor_id; diff --git a/src/dumper.c b/src/dumper.c index 29fb9c0..1fe940b 100644 --- a/src/dumper.c +++ b/src/dumper.c @@ -131,7 +131,7 @@ yaml_emitter_dump(yaml_emitter_t *emitter, yaml_document_t *document) assert(emitter->opened); /* Emitter should be opened. */ - emitter->anchors = yaml_malloc(sizeof(*(emitter->anchors)) + emitter->anchors = (yaml_anchors_t*)yaml_malloc(sizeof(*(emitter->anchors)) * (document->nodes.top - document->nodes.start)); if (!emitter->anchors) goto error; memset(emitter->anchors, 0, sizeof(*(emitter->anchors)) diff --git a/src/emitter.c b/src/emitter.c index 1400df1..9dc27cb 100644 --- a/src/emitter.c +++ b/src/emitter.c @@ -16,7 +16,7 @@ #define PUT(emitter,value) \ (FLUSH(emitter) \ && (*(emitter->buffer.pointer++) = (yaml_char_t)(value), \ - emitter->column ++, \ + emitter->column++, \ 1)) /* |