gnustep-dev
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: NSControls failing to set status/label on BigEndian/64bit


From: Riccardo Mottola
Subject: Re: NSControls failing to set status/label on BigEndian/64bit
Date: Wed, 06 Jan 2021 00:06:36 +0000
User-agent: GNUMail (Version 1.3.0)

Hi Fred,

On 2021-01-05 08:07:59 +0000 Fred Kiefer <fredkiefer@gmx.de> wrote:

line 1094, after the mask is calculated, do you expect it to be always 0, both for on and off state? It is always 0 for me.

As you can see a few lines above the value of mask depends on _cell.is_highlighted and _cell.state. You should output these two values as well. Next it could be either _highlightsByMask or _showAltStateMask. Sou you need to check these values as well. If they are zero you should go back to the decoding method and see wether these values get decoded correctly. The best way to check is to do the same on a 32 bit or 64 little endian system and compare the results. Form files should decode the same for both systems.

It looks totally different, this is what I see on amd64:
2021-01-05 23:15:22.654 Ink[2501:123181007659016] is highlghted 0 - state 0 - altStateMask 0 - highlightByMask 6 2021-01-05 23:15:22.683 Ink[2501:123181007659016] is highlghted 0 - state 0 - altStateMask 0 - highlightByMask 6 2021-01-05 23:15:22.746 Ink[2501:123181007659016] is highlghted 0 - state 0 - altStateMask 0 - highlightByMask 6 2021-01-05 23:15:31.179 Ink[2501:123181007659016] is highlghted 0 - state 0 - altStateMask 0 - highlightByMask 6 2021-01-05 23:15:31.180 Ink[2501:123181007659016] is highlghted 0 - state 0 - altStateMask 0 - highlightByMask 6 2021-01-05 23:15:31.181 Ink[2501:123181007659016] is highlghted 0 - state 0 - altStateMask 0 - highlightByMask 6 2021-01-05 23:15:31.182 Ink[2501:123181007659016] is highlghted 0 - state 0 - altStateMask 0 - highlightByMask 6 2021-01-05 23:15:31.182 Ink[2501:123181007659016] is highlghted 0 - state 0 - altStateMask 0 - highlightByMask 6 2021-01-05 23:15:31.187 Ink[2501:123181007659016] is highlghted 0 - state 1 - altStateMask 1 - highlightByMask 1 2021-01-05 23:15:31.191 Ink[2501:123181007659016] is highlghted 0 - state 1 - altStateMask 0 - highlightByMask 1 2021-01-05 23:15:31.195 Ink[2501:123181007659016] is highlghted 0 - state 1 - altStateMask 1 - highlightByMask 1

This on PPC64
2021-01-06 00:12:47.720 Ink[48256:48256] is highlghted 0 - state 0 - altStateMask 0 - highlightByMask 0 2021-01-06 00:12:47.722 Ink[48256:48256] is highlghted 0 - state 0 - altStateMask 0 - highlightByMask 0 2021-01-06 00:12:47.724 Ink[48256:48256] is highlghted 0 - state 0 - altStateMask 0 - highlightByMask 0 2021-01-06 00:12:47.727 Ink[48256:48256] is highlghted 0 - state 0 - altStateMask 0 - highlightByMask 0 2021-01-06 00:12:47.729 Ink[48256:48256] is highlghted 0 - state 0 - altStateMask 0 - highlightByMask 0 2021-01-06 00:12:47.792 Ink[48256:48256] is highlghted 0 - state 0 - altStateMask 1 - highlightByMask 0 2021-01-06 00:12:47.862 Ink[48256:48256] is highlghted 0 - state 0 - altStateMask 0 - highlightByMask 0 2021-01-06 00:12:47.866 Ink[48256:48256] is highlghted 0 - state 0 - altStateMask 1 - highlightByMask 0


we see indeed state is always zero and the highlightByMask too.... Where is it decoded?

However, look here, if I toggle a checkbox on ppc64:
2021-01-06 00:26:48.328 Ink[48271:48271] is highlghted 1 - state 0 - altStateMask 1 - highlightByMask 0
2021-01-06 00:26:48.364 Ink[48271:48271] NSOffState
2021-01-06 00:26:48.366 Ink[48271:48271] is highlghted 0 - state 0 - altStateMask 0 - highlightByMask 0 2021-01-06 00:27:03.385 Ink[48271:48271] is highlghted 1 - state 0 - altStateMask 0 - highlightByMask 0
2021-01-06 00:27:03.411 Ink[48271:48271] NSOnState
2021-01-06 00:27:03.414 Ink[48271:48271] is highlghted 0 - state 0 - altStateMask 1 - highlightByMask 0

the state never changes... only the altStateMask!

The same on amd64
2021-01-05 23:31:34.188 Ink[8573:132194998521864] is highlghted 1 - state 1 - altStateMask 1 - highlightByMask 1 2021-01-05 23:31:34.300 Ink[8573:132194998521864] is highlghted 0 - state 1 - altStateMask 0 - highlightByMask 1 2021-01-05 23:31:36.416 Ink[8573:132194998521864] is highlghted 1 - state 1 - altStateMask 0 - highlightByMask 1 2021-01-05 23:31:36.476 Ink[8573:132194998521864] is highlghted 0 - state 1 - altStateMask 1 - highlightByMask 1

there "state" is always true and highlighted toggles. I would concentrate on cell state thus, but highlightByMask is also the opposite.

In NSButtonCell it is never set.

How can it not change with the explicit set state I traced in NSCell?

I noticed this in NSCell. like 2583:
[aCoder encodeValueOfObjCType: @encode(unsigned int) at: &tmp_int];
      // FIXME: State may be -1, why do we encode it as unsigned?
      tmp_int = _cell.state;

But this code is not used. However, of course, the non keyed version is used, line 2764 2021-01-06 01:01:57.427 Ink[52733:52733] NSCell initWithCoder tmp_int: 1 state 1 2021-01-06 01:01:57.427 Ink[52733:52733] NSCell initWithCoder tmp_int: 1 state 1 2021-01-06 01:01:57.428 Ink[52733:52733] NSCell initWithCoder tmp_int: 0 state 0 2021-01-06 01:01:57.438 Ink[52733:52733] NSCell initWithCoder tmp_int: 0 state 0

Here it looks that sometimes the state is decoded to true!... so it looks it gets lost?

Riccardo

RIccardo




reply via email to

[Prev in Thread] Current Thread [Next in Thread]