mirror of
https://github.com/topjohnwu/Magisk.git
synced 2025-12-12 01:01:49 +00:00
Use smart pointers
This commit is contained in:
@@ -23,10 +23,9 @@ static int strm_close(void *v) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
FILE *open_stream(stream *strm) {
|
||||
FILE *fp = funopen(strm, strm_read, strm_write, strm_seek, strm_close);
|
||||
// Disable buffering
|
||||
setbuf(fp, nullptr);
|
||||
sFILE make_stream(stream_ptr &&strm) {
|
||||
sFILE fp(funopen(strm.release(), strm_read, strm_write, strm_seek, strm_close), fclose);
|
||||
setbuf(fp.get(), nullptr);
|
||||
return fp;
|
||||
}
|
||||
|
||||
@@ -45,21 +44,16 @@ off_t stream::seek(off_t off, int whence) {
|
||||
return -1;
|
||||
}
|
||||
|
||||
filter_stream::~filter_stream() {
|
||||
if (fp) fclose(fp);
|
||||
}
|
||||
|
||||
int filter_stream::read(void *buf, size_t len) {
|
||||
return fread(buf, 1, len, fp);
|
||||
return fread(buf, 1, len, fp.get());
|
||||
}
|
||||
|
||||
int filter_stream::write(const void *buf, size_t len) {
|
||||
return fwrite(buf, 1, len, fp);
|
||||
return fwrite(buf, 1, len, fp.get());
|
||||
}
|
||||
|
||||
void filter_stream::set_base(FILE *f) {
|
||||
if (fp) fclose(fp);
|
||||
fp = f;
|
||||
void filter_stream::set_base(sFILE &&f) {
|
||||
fp = std::move(f);
|
||||
}
|
||||
|
||||
off_t seekable_stream::seek_pos(off_t off, int whence) {
|
||||
|
||||
Reference in New Issue
Block a user