summaryrefslogtreecommitdiff
path: root/Build/source/texk/web2c/luatexdir/luapplib/src/util/utilmemheapiof.h
diff options
context:
space:
mode:
authorLuigi Scarso <luigi.scarso@gmail.com>2020-03-12 01:13:01 +0000
committerLuigi Scarso <luigi.scarso@gmail.com>2020-03-12 01:13:01 +0000
commit59476ba79f7d3e8beff8fb4c5a684589dc29b99f (patch)
tree579c2bec9fac6848c5e186505df263ddfd20a8c6 /Build/source/texk/web2c/luatexdir/luapplib/src/util/utilmemheapiof.h
parent34f97da40ee8a6190275585ed040d687edd0c2f2 (diff)
sync with upstream luatex rev. 7306.
git-svn-id: svn://tug.org/texlive/trunk@54249 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Build/source/texk/web2c/luatexdir/luapplib/src/util/utilmemheapiof.h')
-rw-r--r--Build/source/texk/web2c/luatexdir/luapplib/src/util/utilmemheapiof.h43
1 files changed, 34 insertions, 9 deletions
diff --git a/Build/source/texk/web2c/luatexdir/luapplib/src/util/utilmemheapiof.h b/Build/source/texk/web2c/luatexdir/luapplib/src/util/utilmemheapiof.h
index 8384eda7aeb..1f3da7efb2f 100644
--- a/Build/source/texk/web2c/luatexdir/luapplib/src/util/utilmemheapiof.h
+++ b/Build/source/texk/web2c/luatexdir/luapplib/src/util/utilmemheapiof.h
@@ -5,14 +5,39 @@
#include "utilmemheap.h"
#include "utiliof.h"
-UTILAPI iof * heap8_buffer_init (heap8 *heap, iof *O);
-UTILAPI iof * heap16_buffer_init (heap16 *heap, iof *O);
-UTILAPI iof * heap32_buffer_init (heap32 *heap, iof *O);
-UTILAPI iof * heap64_buffer_init (heap64 *heap, iof *O);
-
-UTILAPI iof * heap8_buffer_some (heap8 *heap, iof *O, size_t atleast);
-UTILAPI iof * heap16_buffer_some (heap16 *heap, iof *O, size_t atleast);
-UTILAPI iof * heap32_buffer_some (heap32 *heap, iof *O, size_t atleast);
-UTILAPI iof * heap64_buffer_some (heap64 *heap, iof *O, size_t atleast);
+UTILAPI size_t heap8_writer (iof *O, iof_mode mode);
+UTILAPI size_t heap16_writer (iof *O, iof_mode mode);
+UTILAPI size_t heap32_writer (iof *O, iof_mode mode);
+UTILAPI size_t heap64_writer (iof *O, iof_mode mode);
+
+#define HEAP8_BUFFER_INIT(heap) IOF_WRITER_INIT(heap8_writer, (void *)(heap), NULL, 0, 0)
+#define HEAP16_BUFFER_INIT(heap) IOF_WRITER_INIT(heap16_writer, (void *)(heap), NULL, 0, 0)
+#define HEAP32_BUFFER_INIT(heap) IOF_WRITER_INIT(heap32_writer, (void *)(heap), NULL, 0, 0)
+#define HEAP64_BUFFER_INIT(heap) IOF_WRITER_INIT(heap64_writer, (void *)(heap), NULL, 0, 0)
+
+#define heap8_buffer_init(heap, O) iof_writer(O, (void *)(heap), heap8_writer, NULL, 0)
+#define heap16_buffer_init(heap, O) iof_writer(O, (void *)(heap), heap16_writer, NULL, 0)
+#define heap32_buffer_init(heap, O) iof_writer(O, (void *)(heap), heap32_writer, NULL, 0)
+#define heap64_buffer_init(heap, O) iof_writer(O, (void *)(heap), heap64_writer, NULL, 0)
+
+UTILAPI iof * _heap8_buffer_some (heap8 *heap, iof *O, size_t atleast);
+UTILAPI iof * _heap16_buffer_some (heap16 *heap, iof *O, size_t atleast);
+UTILAPI iof * _heap32_buffer_some (heap32 *heap, iof *O, size_t atleast);
+UTILAPI iof * _heap64_buffer_some (heap64 *heap, iof *O, size_t atleast);
+
+#define heap8_buffer_some(heap, O, atleast) (heap8_ensure_head(heap), _heap8_buffer_some(heap, O, atleast))
+#define heap16_buffer_some(heap, O, atleast) (heap16_ensure_head(heap), _heap16_buffer_some(heap, O, atleast))
+#define heap32_buffer_some(heap, O, atleast) (heap32_ensure_head(heap), _heap32_buffer_some(heap, O, atleast))
+#define heap64_buffer_some(heap, O, atleast) (heap64_ensure_head(heap), _heap64_buffer_some(heap, O, atleast))
+
+#define heap8_buffer_done(heap, O) heap8_done(heap, (O)->buf, (size_t)iof_size(O))
+#define heap16_buffer_done(heap, O) heap16_done(heap, (O)->buf, (size_t)iof_size(O))
+#define heap32_buffer_done(heap, O) heap32_done(heap, (O)->buf, (size_t)iof_size(O))
+#define heap64_buffer_done(heap, O) heap64_done(heap, (O)->buf, (size_t)iof_size(O))
+
+#define heap8_buffer_giveup(heap, O) heap8_giveup(heap, (O)->buf)
+#define heap16_buffer_giveup(heap, O) heap16_giveup(heap, (O)->buf)
+#define heap32_buffer_giveup(heap, O) heap32_giveup(heap, (O)->buf)
+#define heap64_buffer_giveup(heap, O) heap64_giveup(heap, (O)->buf)
#endif \ No newline at end of file