Browse Source

Use `likely()` in `PtrToArg<T *>` when checking for null `Object *`s

David Snopek 1 year ago
parent
commit
927f2e1e53
1 changed files with 2 additions and 8 deletions
  1. 2 8
      core/variant/method_ptrcall.h

+ 2 - 8
core/variant/method_ptrcall.h

@@ -159,10 +159,7 @@ MAKE_PTRARG_BY_REFERENCE(Variant);
 template <typename T>
 struct PtrToArg<T *> {
 	_FORCE_INLINE_ static T *convert(const void *p_ptr) {
-		if (p_ptr == nullptr) {
-			return nullptr;
-		}
-		return const_cast<T *>(*reinterpret_cast<T *const *>(p_ptr));
+		return likely(p_ptr) ? const_cast<T *>(*reinterpret_cast<T *const *>(p_ptr)) : nullptr;
 	}
 	typedef Object *EncodeT;
 	_FORCE_INLINE_ static void encode(T *p_var, void *p_ptr) {
@@ -173,10 +170,7 @@ struct PtrToArg<T *> {
 template <typename T>
 struct PtrToArg<const T *> {
 	_FORCE_INLINE_ static const T *convert(const void *p_ptr) {
-		if (p_ptr == nullptr) {
-			return nullptr;
-		}
-		return *reinterpret_cast<T *const *>(p_ptr);
+		return likely(p_ptr) ? *reinterpret_cast<T *const *>(p_ptr) : nullptr;
 	}
 	typedef const Object *EncodeT;
 	_FORCE_INLINE_ static void encode(T *p_var, void *p_ptr) {