Skip to content

Commit 030f743

Browse files
committed
Removed unnecessary mpack_file_reader_t
1 parent 71980b8 commit 030f743

File tree

2 files changed

+21
-23
lines changed

2 files changed

+21
-23
lines changed

src/mpack/mpack-reader.c

Lines changed: 18 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -106,22 +106,15 @@ void mpack_reader_set_skip(mpack_reader_t* reader, mpack_reader_skip_t skip) {
106106
}
107107

108108
#if MPACK_STDIO
109-
typedef struct mpack_file_reader_t {
110-
FILE* file;
111-
char buffer[MPACK_BUFFER_SIZE];
112-
} mpack_file_reader_t;
113-
114109
static size_t mpack_file_reader_fill(mpack_reader_t* reader, char* buffer, size_t count) {
115-
mpack_file_reader_t* file_reader = (mpack_file_reader_t*)reader->context;
116-
return fread((void*)buffer, 1, count, file_reader->file);
110+
return fread((void*)buffer, 1, count, (FILE*)reader->context);
117111
}
118112

119113
#if !MPACK_OPTIMIZE_FOR_SIZE
120114
static void mpack_file_reader_skip(mpack_reader_t* reader, size_t count) {
121-
mpack_file_reader_t* file_reader = (mpack_file_reader_t*)reader->context;
122115
if (mpack_reader_error(reader) != mpack_ok)
123116
return;
124-
FILE* file = file_reader->file;
117+
FILE* file = (FILE*)reader->context;
125118

126119
// We call ftell() to test whether the stream is seekable
127120
// without causing a file error.
@@ -142,36 +135,40 @@ static void mpack_file_reader_skip(mpack_reader_t* reader, size_t count) {
142135
#endif
143136

144137
static void mpack_file_reader_teardown(mpack_reader_t* reader) {
145-
mpack_file_reader_t* file_reader = (mpack_file_reader_t*)reader->context;
138+
FILE* file = (FILE*)reader->context;
146139

147-
if (file_reader->file) {
148-
int ret = fclose(file_reader->file);
149-
file_reader->file = NULL;
140+
if (file) {
141+
int ret = fclose(file);
142+
reader->context = NULL;
150143
if (ret != 0)
151144
mpack_reader_flag_error(reader, mpack_error_io);
152145
}
153146

154-
MPACK_FREE(file_reader);
147+
MPACK_FREE(reader->buffer);
148+
reader->buffer = NULL;
149+
reader->size = 0;
150+
reader->fill = NULL;
155151
}
156152

157153
void mpack_reader_init_file(mpack_reader_t* reader, const char* filename) {
158154
mpack_assert(filename != NULL, "filename is NULL");
159155

160-
mpack_file_reader_t* file_reader = (mpack_file_reader_t*) MPACK_MALLOC(sizeof(mpack_file_reader_t));
161-
if (file_reader == NULL) {
156+
size_t capacity = MPACK_BUFFER_SIZE;
157+
char* buffer = (char*)MPACK_MALLOC(capacity);
158+
if (buffer == NULL) {
162159
mpack_reader_init_error(reader, mpack_error_memory);
163160
return;
164161
}
165162

166-
file_reader->file = fopen(filename, "rb");
167-
if (file_reader->file == NULL) {
163+
FILE* file = fopen(filename, "rb");
164+
if (file == NULL) {
165+
MPACK_FREE(buffer);
168166
mpack_reader_init_error(reader, mpack_error_io);
169-
MPACK_FREE(file_reader);
170167
return;
171168
}
172169

173-
mpack_reader_init(reader, file_reader->buffer, sizeof(file_reader->buffer), 0);
174-
mpack_reader_set_context(reader, file_reader);
170+
mpack_reader_init(reader, buffer, capacity, 0);
171+
mpack_reader_set_context(reader, file);
175172
mpack_reader_set_fill(reader, mpack_file_reader_fill);
176173
#if !MPACK_OPTIMIZE_FOR_SIZE
177174
mpack_reader_set_skip(reader, mpack_file_reader_skip);

src/mpack/mpack-writer.c

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -259,7 +259,8 @@ static void mpack_file_writer_teardown(mpack_writer_t* writer) {
259259
void mpack_writer_init_file(mpack_writer_t* writer, const char* filename) {
260260
mpack_assert(filename != NULL, "filename is NULL");
261261

262-
char* buffer = (char*)MPACK_MALLOC(MPACK_BUFFER_SIZE);
262+
size_t capacity = MPACK_BUFFER_SIZE;
263+
char* buffer = (char*)MPACK_MALLOC(capacity);
263264
if (buffer == NULL) {
264265
mpack_writer_init_error(writer, mpack_error_memory);
265266
return;
@@ -272,7 +273,7 @@ void mpack_writer_init_file(mpack_writer_t* writer, const char* filename) {
272273
return;
273274
}
274275

275-
mpack_writer_init(writer, buffer, MPACK_BUFFER_SIZE);
276+
mpack_writer_init(writer, buffer, capacity);
276277
mpack_writer_set_context(writer, file);
277278
mpack_writer_set_flush(writer, mpack_file_writer_flush);
278279
mpack_writer_set_teardown(writer, mpack_file_writer_teardown);

0 commit comments

Comments
 (0)