Skip to content

Commit f0fa9ae

Browse files
committed
When using unique_ptr for PBRPickerAgentListener and PBRPickerObjectListener, default_delete must be defined.
1 parent 0f60058 commit f0fa9ae

File tree

2 files changed

+14
-0
lines changed

2 files changed

+14
-0
lines changed

indra/newview/llpanelface.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1838,6 +1838,7 @@ class PBRPickerAgentListener : public LLInventoryObserver
18381838
mChangePending = false;
18391839
}
18401840
};
1841+
void std::default_delete<PBRPickerAgentListener>::operator()(PBRPickerAgentListener * ptr) const noexcept { delete ptr; }
18411842

18421843
// One-off listener that updates the build floater UI when the prim inventory updates
18431844
class PBRPickerObjectListener : public LLVOInventoryListener
@@ -1877,6 +1878,7 @@ class PBRPickerObjectListener : public LLVOInventoryListener
18771878
mChangePending = false;
18781879
}
18791880
};
1881+
void std::default_delete<PBRPickerObjectListener>::operator()(PBRPickerObjectListener * ptr) const noexcept { delete ptr; }
18801882

18811883
void LLPanelFace::updateUIGLTF(LLViewerObject* objectp, bool& has_pbr_material, bool& has_faces_without_pbr, bool force_set_values)
18821884
{

indra/newview/llpanelface.h

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,18 @@ class LLRadioGroup;
5757
class PBRPickerAgentListener;
5858
class PBRPickerObjectListener;
5959

60+
// This is specializations are needed to support std::unique_ptr<T> where T is an incomplete type
61+
namespace std {
62+
template<> struct default_delete<PBRPickerAgentListener> {
63+
constexpr default_delete() noexcept = default;
64+
void operator()(PBRPickerAgentListener* ptr) const noexcept;
65+
};
66+
template<> struct default_delete<PBRPickerObjectListener> {
67+
constexpr default_delete() noexcept = default;
68+
void operator()(PBRPickerObjectListener* ptr) const noexcept;
69+
};
70+
}
71+
6072
// Represents an edit for use in replicating the op across one or more materials in the selection set.
6173
//
6274
// The apply function optionally performs the edit which it implements

0 commit comments

Comments
 (0)