From: Adam C. Emerson Date: Thu, 22 Jan 2026 06:36:02 +0000 (-0500) Subject: msg: Make `intrusive_ptr` functions available when needed X-Git-Tag: v21.0.0~140^2~3 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=17cdc8f2c3c3cf74894a44e320cc41d5f78b82a3;p=ceph.git msg: Make `intrusive_ptr` functions available when needed Since clang21 is a lot more strict about what phase things are available in, declare the `intrusive_ptr` free functions in `MessageRef.h` and make definitions available in `Message.h`. Signed-off-by: Adam C. Emerson --- diff --git a/src/msg/Message.h b/src/msg/Message.h index 59eb882c8f83..eebf81419795 100644 --- a/src/msg/Message.h +++ b/src/msg/Message.h @@ -552,6 +552,16 @@ public: void encode(uint64_t features, int crcflags, bool skip_header_crc = false); }; +inline void intrusive_ptr_add_ref(Message* m) +{ + m->get(); +} + +inline void intrusive_ptr_release(Message* m) +{ + m->put(); +} + extern Message *decode_message(CephContext *cct, int crcflags, ceph_msg_header& header, diff --git a/src/msg/MessageRef.h b/src/msg/MessageRef.h index 27d416802f8a..416b58f8df7f 100644 --- a/src/msg/MessageRef.h +++ b/src/msg/MessageRef.h @@ -26,9 +26,14 @@ using MConstRef = boost::intrusive_ptr; template using MURef = std::unique_ptr; -using MessageRef = MRef; -using MessageConstRef = MConstRef; -using MessageURef = MURef; +class Message; + +void intrusive_ptr_add_ref(Message* m); +void intrusive_ptr_release(Message* m); + +using MessageRef = MRef; +using MessageConstRef = MConstRef; +using MessageURef = MURef; /* cd src/messages/ && for f in *; do printf 'class '; basename "$f" .h | tr -d '\n'; printf ';\n'; done >> ../msg/MessageRef.h */