Hi Christian,
Christian Weisgerber wrote on Tue, Apr 17, 2018 at 06:52:14PM +0200:
> Here are three further tentative fixes for x11/kde4/libs.
> There are additional problems still, but I'm going to take
> a break now.
I checked that your patches are indeed needed, that they indeed
solve the respective problems, and that the code change and your
explanation makes sense.
I think you should commit these, it gets us closer to getting
the libs to build.
> Some comments:
>
> * dnssd/servicemodel.h:
> The value of ServicePtrRole appears to be random number that would
> be unlikely to collide with the values already used in Qt::ItemDataRole.
> It needs to fit into an int, so I dropped the top bit. Maybe a
> cast in servicemodel.cpp would be better, dunno.
OK.
> * kdeui/windowmanagement/netwm.cpp:
> None is normally defined to 0L by the X11 headers, but
> kdeui/util/fixx11h.h performs some special magic to turn it into
> a const integral variable with value 0, which is too far off from
> a null pointer for clang6. Since the intend is to compare against
> a null pointer, just use NULL.
OK.
> * khtml/misc/AtomicString.cpp:
> String length is unsigned, but AtomicString::add() takes an int
> parameter. In principle, it would be better to change the parameter
> to unsigned, but I'm afraid this will just push the problem to
> any callers.
OK.
Yours,
Ingo
> Index: patches/patch-dnssd_servicemodel_h
> ===================================================================
> RCS file: patches/patch-dnssd_servicemodel_h
> diff -N patches/patch-dnssd_servicemodel_h
> --- /dev/null 1 Jan 1970 00:00:00 -0000
> +++ patches/patch-dnssd_servicemodel_h 17 Apr 2018 16:39:05 -0000
> @@ -0,0 +1,14 @@
> +$OpenBSD$
> +
> +Index: dnssd/servicemodel.h
> +--- dnssd/servicemodel.h.orig
> ++++ dnssd/servicemodel.h
> +@@ -71,7 +71,7 @@ class KDNSSD_EXPORT ServiceModel : public QAbstractIte
> +
> + /** The additional data roles provided by this model */
> + enum AdditionalRoles {
> +- ServicePtrRole = 0xA06519DE ///< gets a RemoteService::Ptr for
> the service
> ++ ServicePtrRole = 0x206519DE ///< gets a RemoteService::Ptr for
> the service
> + };
> +
> + /**
> Index: patches/patch-kdeui_windowmanagement_netwm_cpp
> ===================================================================
> RCS file: patches/patch-kdeui_windowmanagement_netwm_cpp
> diff -N patches/patch-kdeui_windowmanagement_netwm_cpp
> --- /dev/null 1 Jan 1970 00:00:00 -0000
> +++ patches/patch-kdeui_windowmanagement_netwm_cpp 17 Apr 2018 16:39:05
> -0000
> @@ -0,0 +1,14 @@
> +$OpenBSD$
> +
> +Index: kdeui/windowmanagement/netwm.cpp
> +--- kdeui/windowmanagement/netwm.cpp.orig
> ++++ kdeui/windowmanagement/netwm.cpp
> +@@ -4368,7 +4368,7 @@ void NETWinInfo::update(const unsigned long dirty_prop
> + if (XGetWindowProperty(p->display, p->window,
> kde_net_wm_block_compositing, 0l,
> + 1, False, XA_STRING, &type_ret,
> + &format_ret, &nitems_ret, &unused,
> &data_ret) == Success) {
> +- p->blockCompositing = (data_ret != None);
> ++ p->blockCompositing = (data_ret != NULL);
> + if (data_ret) // stupid question to everyone - since the
> result is "Success", is this check required?
> + XFree(data_ret);
> + }
> Index: patches/patch-khtml_misc_AtomicString_cpp
> ===================================================================
> RCS file: patches/patch-khtml_misc_AtomicString_cpp
> diff -N patches/patch-khtml_misc_AtomicString_cpp
> --- /dev/null 1 Jan 1970 00:00:00 -0000
> +++ patches/patch-khtml_misc_AtomicString_cpp 17 Apr 2018 16:39:05 -0000
> @@ -0,0 +1,23 @@
> +$OpenBSD$
> +
> +Index: khtml/misc/AtomicString.cpp
> +--- khtml/misc/AtomicString.cpp.orig
> ++++ khtml/misc/AtomicString.cpp
> +@@ -160,7 +160,7 @@ DOMStringImpl* AtomicString::add(const QChar* s, int l
> + return DOMStringImpl::empty();
> +
> + init();
> +- UCharBuffer buf = { s, length };
> ++ UCharBuffer buf = { s, static_cast<unsigned int>(length) };
> + std::pair<HashSet<DOMStringImpl*>::iterator, bool> addResult =
> stringTable->add<UCharBuffer, UCharBufferTranslator>(buf);
> + if (!addResult.second)
> + return *addResult.first;
> +@@ -172,7 +172,7 @@ DOMStringImpl* AtomicString::add(const QChar* s)
> + if (!s)
> + return 0;
> +
> +- int length = 0;
> ++ unsigned length = 0;
> + while (s[length] != QChar(0))
> + length++;
> +