[prev in list] [next in list] [prev in thread] [next in thread]
List: pykde
Subject: [PyQt] Possible bug in the handling of sipTypeInstanceDef for const data
From: Shaheed Haque <srhaque () theiet ! org>
Date: 2017-08-30 19:44:09
Message-ID: CAHAc2jf11h1pAHoJkj8qPmWtLd0T6hmWW6miapVM9=t5MqkKmA () mail ! gmail ! com
[Download RAW message or body]
Hi Phil,
I have a bit of C++ like this:
========
typedef struct prob {
int p_range;
int p_offset;
} Prob;
static const Prob freqs[16] = {
{0, 0}, ...
};
========
(all this is at global scope). The SIP I create for this is:
========
struct prob
{
%TypeHeaderCode
#include <MessageViewer/KXFace>
%End
int p_range;
int p_offset;
};
const prob *freqs /NoSetter/;
========
In response, SIP creates this code which does not compile, complaining
"error: invalid conversion from ‘const void*' to ‘void*'":
========
/* Define the class and enum instances to be added to this module dictionary. */
static sipTypeInstanceDef typeInstances[] = {
{sipName_freqs, & ::freqs, &sipType_prob, SIP_INDIRECT},
{0, 0, 0, 0}
};
========
Inserting a cast to make the second filed look like "(void *)&
::freqs" suppresses the error. Now, I could probably cook up a patch
to do this, but I'm not sure if the correct fix is actually to change
the definition of the field to "const void *ti_ptr"?
Any thoughts?
Thanks, Shaheed
_______________________________________________
PyQt mailing list PyQt@riverbankcomputing.com
https://www.riverbankcomputing.com/mailman/listinfo/pyqt
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic