As part of my ongoing effort to port the latest Lynkeos release to GNUstep, I have encountered an issue with a custom class which is a subclass of NSSlider/NSSliderCell. The original code is available here [1] as .dmg only, I used 7z to unpack it.
[1] http://developer.snowmintcs.com/controls/smdoubleslider/ The Lynkeos bundled version can be obtained with Subversion [2] and is also browseable here [3]. [2] svn co svn://svn.code.sf.net/p/lynkeos/code/trunk/application/ThirdPartySources/SMDoubleSlider SMDoubleSlider [3] https://sourceforge.net/p/lynkeos/code/HEAD/tree/trunk/application/ThirdPartySources/SMDoubleSlider/ It seems that the original code accesses NSSliderCell private ivars directly (_value and some struct members); they have no GNUstep equivalent. In 2009, the Lynkeos developer made some changes to fix compilation on GNUstep: https://sourceforge.net/p/lynkeos/code/490/tree//trunk/application/ThirdPartySources/SMDoubleSlider/SMDoubleSliderCell.m?diff=517068cee88f3d0a275a1c9e:489 I assume that this works on Cocoa as there were several Lynkeos releases since then. It builds on GNUstep but crashes: Program received signal SIGSEGV, Segmentation fault. 0x00007ffff6b61216 in objc_msg_lookup (receiver=receiver@entry=0x5555562ef7f0, op=op@entry=0x7ffff7c6f130 <_OBJC_SELECTOR_TABLE+400>) at /build/gcc-8-0DvHrl/gcc-8-8-20180218/src/libobjc/sendmsg.c:439 439 /build/gcc-8-0DvHrl/gcc-8-8-20180218/src/libobjc/sendmsg.c: Няма такъв файл или директория. (gdb) bt #0 0x00007ffff6b61216 in objc_msg_lookup (receiver=receiver@entry=0x5555562ef7f0, op=op@entry=0x7ffff7c6f130 <_OBJC_SELECTOR_TABLE+400>) at /build/gcc-8-0DvHrl/gcc-8-8-20180218/src/libobjc/sendmsg.c:439 #1 0x00007ffff77d2015 in -[NSCell doubleValue] (self=0x5555562ef7f0, _cmd=<optimized out>) at NSCell.m:269 #2 0x00007ffff778362a in -[NSActionCell doubleValue] (self=0x5555562ef7f0, _cmd=<optimized out>) at NSActionCell.m:187 #3 0x000055555555bfdb in -[SMDoubleSliderCell doubleHiValue] (self=0x5555562ef7f0, _cmd=<optimized out>) at SMDoubleSliderCell.m:448 #4 0x000055555555de93 in -[SMDoubleSliderCell stringHiValue] (self=0x5555562ef7f0, _cmd=<optimized out>) at SMDoubleSliderCell.m:494 #5 0x00007ffff77d2021 in -[NSCell doubleValue] (self=0x5555562ef7f0, _cmd=<optimized out>) at NSCell.m:269 #6 0x00007ffff778362a in -[NSActionCell doubleValue] (self=0x5555562ef7f0, _cmd=<optimized out>) at NSActionCell.m:187 #7 0x000055555555bfdb in -[SMDoubleSliderCell doubleHiValue] (self=0x5555562ef7f0, _cmd=<optimized out>) at SMDoubleSliderCell.m:448 #8 0x000055555555de93 in -[SMDoubleSliderCell stringHiValue] (self=0x5555562ef7f0, _cmd=<optimized out>) at SMDoubleSliderCell.m:494 #9 0x00007ffff77d2021 in -[NSCell doubleValue] (self=0x5555562ef7f0, _cmd=<optimized out>) at NSCell.m:269 #10 0x00007ffff778362a in -[NSActionCell doubleValue] (self=0x5555562ef7f0, _cmd=<optimized out>) at NSActionCell.m:187 ... The devil's circle goes on and on. Am I right to conclude that SMDoubleSlider is tightly tied to Apple's implementation and cannot possibly work on GNUstep? Is there anything I can do except to disable this functionality? _______________________________________________ Discuss-gnustep mailing list Discuss-gnustep@gnu.org https://lists.gnu.org/mailman/listinfo/discuss-gnustep