Re: NSControls failing to set status/label on BigEndian/64bit
Riccardo Mottola <[email protected]>
| Newsgroups | gmane.comp.lib.gnustep.devel |
|---|---|
| Organization | GNUstep |
| Message-ID | <[email protected]> |
Hi Fred, On 2021-01-05 08:07:59 +0000 Fred Kiefer <[email protected]> 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