@@ -326,8 +326,8 @@ namespace DFHack
326326 class DFHACK_EXPORT union_identity : public struct_identity {
327327 public:
328328 union_identity (size_t size, TAllocateFn alloc,
329- compound_identity *scope_parent, const char *dfhack_name,
330- struct_identity *parent, const struct_field_info *fields);
329+ const compound_identity *scope_parent, const char *dfhack_name,
330+ const struct_identity *parent, const struct_field_info *fields);
331331
332332 virtual identity_type type () const { return IDTYPE_UNION; }
333333
@@ -418,13 +418,13 @@ namespace DFHack
418418 template <class P > static P get_vmethod_ptr (P selector);
419419
420420 public:
421- bool can_instantiate () { return can_allocate (); }
422- virtual_ptr instantiate () { return can_instantiate () ? (virtual_ptr)do_allocate () : NULL ; }
421+ bool can_instantiate () const { return can_allocate (); }
422+ virtual_ptr instantiate () const { return can_instantiate () ? (virtual_ptr)do_allocate () : NULL ; }
423423 static virtual_ptr clone (virtual_ptr obj);
424424
425425 public:
426426 // Strictly for use in virtual class constructors
427- void adjust_vtable (virtual_ptr obj, virtual_identity *main);
427+ void adjust_vtable (virtual_ptr obj, const virtual_identity *main) const ;
428428 };
429429
430430 template <class T >
@@ -536,10 +536,10 @@ namespace df
536536 struct identity_traits {};
537537
538538 template <class T >
539- requires requires () { { &T::_identity } -> std::convertible_to<compound_identity*>; }
539+ requires requires () { { &T::_identity } -> std::convertible_to<const compound_identity*>; }
540540 struct identity_traits <T> {
541541 static const bool is_primitive = false ;
542- static compound_identity *get () { return &T::_identity; }
542+ static const compound_identity *get () { return &T::_identity; }
543543 };
544544
545545 template <class T >
0 commit comments