Cleanup: Use reference where null asset library is not possible

It should not be possible to end up with an asset representation that
does not have a valid pointer/reference to the asset library owning it,
it's injected via all constructors. So reflect that by using a reference
instead of a (possibly null) pointer.
This commit is contained in:
Julian Eisel 2024-02-16 16:53:36 +01:00
parent 38c2305457
commit 6d387b3ba8
2 changed files with 9 additions and 19 deletions

@ -39,7 +39,7 @@ class AssetRepresentation {
*/
const bool is_local_id_ = false;
/** Asset library that owns this asset representation. */
const AssetLibrary *owner_asset_library_;
const AssetLibrary &owner_asset_library_;
struct ExternalAsset {
std::string name;

@ -24,7 +24,7 @@ AssetRepresentation::AssetRepresentation(AssetIdentifier &&identifier,
const AssetLibrary &owner_asset_library)
: identifier_(identifier),
is_local_id_(false),
owner_asset_library_(&owner_asset_library),
owner_asset_library_(owner_asset_library),
external_asset_()
{
external_asset_.name = name;
@ -37,7 +37,7 @@ AssetRepresentation::AssetRepresentation(AssetIdentifier &&identifier,
const AssetLibrary &owner_asset_library)
: identifier_(identifier),
is_local_id_(true),
owner_asset_library_(&owner_asset_library),
owner_asset_library_(owner_asset_library),
local_asset_id_(&id)
{
if (!id.asset_data) {
@ -59,11 +59,7 @@ const AssetIdentifier &AssetRepresentation::get_identifier() const
AssetWeakReference *AssetRepresentation::make_weak_reference() const
{
if (!owner_asset_library_) {
return nullptr;
}
return AssetWeakReference::make_reference(*owner_asset_library_, identifier_);
return AssetWeakReference::make_reference(owner_asset_library_, identifier_);
}
StringRefNull AssetRepresentation::get_name() const
@ -91,26 +87,20 @@ AssetMetaData &AssetRepresentation::get_metadata() const
std::optional<eAssetImportMethod> AssetRepresentation::get_import_method() const
{
if (!owner_asset_library_) {
return {};
}
return owner_asset_library_->import_method_;
return owner_asset_library_.import_method_;
}
bool AssetRepresentation::may_override_import_method() const
{
if (!owner_asset_library_ || !owner_asset_library_->import_method_) {
if (!owner_asset_library_.import_method_) {
return true;
}
return owner_asset_library_->may_override_import_method_;
return owner_asset_library_.may_override_import_method_;
}
bool AssetRepresentation::get_use_relative_path() const
{
if (!owner_asset_library_) {
return false;
}
return owner_asset_library_->use_relative_path_;
return owner_asset_library_.use_relative_path_;
}
ID *AssetRepresentation::local_id() const
@ -125,7 +115,7 @@ bool AssetRepresentation::is_local_id() const
const AssetLibrary &AssetRepresentation::owner_asset_library() const
{
return *owner_asset_library_;
return owner_asset_library_;
}
} // namespace blender::asset_system