diff options
| author | Rusty Wagner <rusty.wagner@gmail.com> | 2023-01-30 13:16:38 -0500 |
|---|---|---|
| committer | Rusty Wagner <rusty.wagner@gmail.com> | 2023-01-30 13:16:38 -0500 |
| commit | 895b186c0273146ac915d855214e98e07f54de65 (patch) | |
| tree | b012745059de022192ececfa173e4c599e150b4c /metadata.cpp | |
| parent | 6ed8f189b2a0607a13c2a2163d82993ca60d2a19 (diff) | |
Fix crash on Get of nonexistant metadata
Diffstat (limited to 'metadata.cpp')
| -rw-r--r-- | metadata.cpp | 20 |
1 files changed, 16 insertions, 4 deletions
diff --git a/metadata.cpp b/metadata.cpp index c52f6dd1..253d03de 100644 --- a/metadata.cpp +++ b/metadata.cpp @@ -132,22 +132,34 @@ bool Metadata::operator==(const Metadata& rhs) Ref<Metadata> Metadata::operator[](const std::string& key) { - return new Metadata(BNMetadataGetForKey(m_object, key.c_str())); + auto result = BNMetadataGetForKey(m_object, key.c_str()); + if (!result) + return nullptr; + return new Metadata(result); } Ref<Metadata> Metadata::operator[](size_t idx) { - return new Metadata(BNMetadataGetForIndex(m_object, idx)); + auto result = BNMetadataGetForIndex(m_object, idx); + if (!result) + return nullptr; + return new Metadata(result); } Ref<Metadata> Metadata::Get(const std::string& key) { - return new Metadata(BNMetadataGetForKey(m_object, key.c_str())); + auto result = BNMetadataGetForKey(m_object, key.c_str()); + if (!result) + return nullptr; + return new Metadata(result); } Ref<Metadata> Metadata::Get(size_t index) { - return new Metadata(BNMetadataGetForIndex(m_object, index)); + auto result = BNMetadataGetForIndex(m_object, index); + if (!result) + return nullptr; + return new Metadata(result); } bool Metadata::SetValueForKey(const string& key, Ref<Metadata> data) |
