summaryrefslogtreecommitdiff
path: root/metadata.cpp
diff options
context:
space:
mode:
authorRusty Wagner <rusty.wagner@gmail.com>2023-01-30 13:16:38 -0500
committerRusty Wagner <rusty.wagner@gmail.com>2023-01-30 13:16:38 -0500
commit895b186c0273146ac915d855214e98e07f54de65 (patch)
treeb012745059de022192ececfa173e4c599e150b4c /metadata.cpp
parent6ed8f189b2a0607a13c2a2163d82993ca60d2a19 (diff)
Fix crash on Get of nonexistant metadata
Diffstat (limited to 'metadata.cpp')
-rw-r--r--metadata.cpp20
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)