summaryrefslogtreecommitdiff
path: root/src/runtime/c/pgf/reader.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/runtime/c/pgf/reader.c')
-rw-r--r--src/runtime/c/pgf/reader.c27
1 files changed, 2 insertions, 25 deletions
diff --git a/src/runtime/c/pgf/reader.c b/src/runtime/c/pgf/reader.c
index 1b776beec..b6d3c8854 100644
--- a/src/runtime/c/pgf/reader.c
+++ b/src/runtime/c/pgf/reader.c
@@ -91,38 +91,15 @@ pgf_read_len(PgfReader* rdr)
static PgfCId
pgf_read_cid(PgfReader* rdr)
{
- GuPool* tmp_pool = gu_new_pool();
- GuStringBuf* sbuf = gu_string_buf(tmp_pool);
- GuOut* out = gu_string_buf_out(sbuf);
-
size_t len = pgf_read_len(rdr);
- for (size_t i = 0; i < len; i++) {
- // CIds are in latin-1
- GuUCS ucs = gu_in_u8(rdr->in, rdr->err);
- gu_out_utf8(ucs, out, rdr->err);
- }
- GuString str = gu_string_buf_freeze(sbuf, rdr->opool);
- gu_pool_free(tmp_pool);
- return str;
+ return gu_string_read_latin1(len, rdr->opool, rdr->in, rdr->err);
}
static GuString
pgf_read_string(PgfReader* rdr)
{
- GuPool* tmp_pool = gu_new_pool();
- GuStringBuf* sbuf = gu_string_buf(tmp_pool);
- GuOut* out = gu_string_buf_out(sbuf);
-
GuLength len = pgf_read_len(rdr);
-
- for (size_t i = 0; i < len; i++) {
- GuUCS ucs = gu_in_utf8(rdr->in, rdr->err);
- gu_out_utf8(ucs, out, rdr->err);
- }
- GuString str = gu_string_buf_freeze(sbuf, rdr->opool);
- gu_pool_free(tmp_pool);
-
- return str;
+ return gu_string_read(len, rdr->opool, rdr->in, rdr->err);
}
static void