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++;
> + 

Reply via email to