libudfread | branch: master | Petri Hintukainen <[email protected]> | Tue May 19 12:51:20 2015 +0300| [ba7ef11e45753a91a89a43102d02449284584a76] | committer: Petri Hintukainen
Make block input close function optional > http://git.videolan.org/gitweb.cgi/libudfread.git/?a=commit;h=ba7ef11e45753a91a89a43102d02449284584a76 --- src/blockinput.h | 5 ++++- src/udfread.c | 8 ++++++-- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/src/blockinput.h b/src/blockinput.h index 8293b00..af8c41b 100644 --- a/src/blockinput.h +++ b/src/blockinput.h @@ -40,9 +40,12 @@ extern "C" { typedef struct udfread_block_input udfread_block_input; struct udfread_block_input { + /* Close input. Optional. */ int (*close) (udfread_block_input *); + /* Read block(s) from input. Mandatory. */ int (*read) (udfread_block_input *, uint32_t lba, void *buf, uint32_t nblocks, int flags); - uint32_t (*size) (udfread_block_input *); /* size in blocks */ + /* Input size in blocks. Optional. */ + uint32_t (*size) (udfread_block_input *); }; diff --git a/src/udfread.c b/src/udfread.c index add9152..2a90ee8 100644 --- a/src/udfread.c +++ b/src/udfread.c @@ -1140,7 +1140,9 @@ int udfread_open(udfread *udf, const char *path) result = udfread_open_input(udf, input); if (result < 0) { - input->close(input); + if (input->close) { + input->close(input); + } } return result; @@ -1150,7 +1152,9 @@ void udfread_close(udfread *udf) { if (udf) { if (udf->input) { - udf->input->close(udf->input); + if (udf->input->close) { + udf->input->close(udf->input); + } udf->input = NULL; } _______________________________________________ libbluray-devel mailing list [email protected] https://mailman.videolan.org/listinfo/libbluray-devel
