summaryrefslogtreecommitdiff
path: root/metadata.cpp
diff options
context:
space:
mode:
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)