From d0580a231c9b8e2a97fc0ea6a558b593dcb0c3d0 Mon Sep 17 00:00:00 2001 From: Thiago Macieira Date: Tue, 8 Oct 2024 17:26:10 -0700 Subject: QMetaMethodBuilder: limit the bits of attribute()/setAttribute() Pick-to: 6.8 Change-Id: I2d680563e65be28666f5fffd6aac927fd40c6b5d Reviewed-by: Oliver Wolff Reviewed-by: Fabian Kosmale --- src/corelib/kernel/qmetaobjectbuilder.cpp | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) (limited to 'src/corelib/kernel/qmetaobjectbuilder.cpp') diff --git a/src/corelib/kernel/qmetaobjectbuilder.cpp b/src/corelib/kernel/qmetaobjectbuilder.cpp index 96b25bd3722..b5911aff549 100644 --- a/src/corelib/kernel/qmetaobjectbuilder.cpp +++ b/src/corelib/kernel/qmetaobjectbuilder.cpp @@ -1707,7 +1707,7 @@ int QMetaMethodBuilder::attributes() const { QMetaMethodBuilderPrivate *d = d_func(); if (d) - return (d->attributes >> 4); + return (d->attributes >> 4) & 0x7; else return 0; } @@ -1720,8 +1720,10 @@ int QMetaMethodBuilder::attributes() const void QMetaMethodBuilder::setAttributes(int value) { QMetaMethodBuilderPrivate *d = d_func(); - if (d) - d->attributes = ((d->attributes & 0x0f) | (value << 4)); + if (d) { + d->attributes &= ~0x70; + d->attributes |= (value & 0x7) << 4; + } } /*! -- cgit v1.2.3