]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
msg: Make `intrusive_ptr<Message>` functions available when needed
authorAdam C. Emerson <aemerson@redhat.com>
Thu, 22 Jan 2026 06:36:02 +0000 (01:36 -0500)
committerAdam C. Emerson <aemerson@redhat.com>
Tue, 27 Jan 2026 16:57:40 +0000 (11:57 -0500)
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 <aemerson@redhat.com>
src/msg/Message.h
src/msg/MessageRef.h

index 59eb882c8f83193fdf7fa52aa42ac57d084460f6..eebf814197951be4b0731036506c8448fc9aa251 100644 (file)
@@ -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,
index 27d416802f8ac7d746c2280784d629c2037d7bc4..416b58f8df7f41e0c5dfddaa2ad65751302163ac 100644 (file)
@@ -26,9 +26,14 @@ using MConstRef = boost::intrusive_ptr<T const>;
 template<typename T>
 using MURef = std::unique_ptr<T, TOPNSPC::common::UniquePtrDeleter>;
 
-using MessageRef = MRef<class Message>;
-using MessageConstRef = MConstRef<class Message>;
-using MessageURef = MURef<class Message>;
+class Message;
+
+void intrusive_ptr_add_ref(Message* m);
+void intrusive_ptr_release(Message* m);
+
+using MessageRef = MRef<Message>;
+using MessageConstRef = MConstRef<Message>;
+using MessageURef = MURef<Message>;
 
 /* cd src/messages/ && for f in *; do printf 'class '; basename "$f" .h | tr -d '\n'; printf ';\n'; done >> ../msg/MessageRef.h */