archive/File: eliminate Close(), make destructor virtual instead
This commit is contained in:
@@ -22,19 +22,12 @@
|
||||
|
||||
class Mutex;
|
||||
class Cond;
|
||||
struct ArchivePlugin;
|
||||
class ArchiveVisitor;
|
||||
class InputStream;
|
||||
|
||||
class ArchiveFile {
|
||||
protected:
|
||||
/**
|
||||
* Use Close() instead of delete.
|
||||
*/
|
||||
~ArchiveFile() {}
|
||||
|
||||
public:
|
||||
virtual void Close() = 0;
|
||||
virtual ~ArchiveFile() noexcept = default;
|
||||
|
||||
/**
|
||||
* Visit all entries inside this archive.
|
||||
|
@@ -49,10 +49,6 @@ public:
|
||||
name.erase(len - 4);
|
||||
}
|
||||
|
||||
virtual void Close() override {
|
||||
delete this;
|
||||
}
|
||||
|
||||
virtual void Visit(ArchiveVisitor &visitor) override {
|
||||
visitor.VisitArchiveEntry(name.c_str());
|
||||
}
|
||||
|
@@ -72,10 +72,6 @@ public:
|
||||
void Visit(char *path, size_t length, size_t capacity,
|
||||
ArchiveVisitor &visitor);
|
||||
|
||||
virtual void Close() override {
|
||||
delete this;
|
||||
}
|
||||
|
||||
virtual void Visit(ArchiveVisitor &visitor) override;
|
||||
|
||||
InputStream *OpenStream(const char *path,
|
||||
|
@@ -57,10 +57,6 @@ public:
|
||||
ZzipArchiveFile(std::shared_ptr<ZzipDir> &&_dir)
|
||||
:dir(std::move(_dir)) {}
|
||||
|
||||
virtual void Close() override {
|
||||
delete this;
|
||||
}
|
||||
|
||||
virtual void Visit(ArchiveVisitor &visitor) override;
|
||||
|
||||
InputStream *OpenStream(const char *path,
|
||||
|
Reference in New Issue
Block a user