in reply to Re: Passing integer pointer in XS?
in thread Passing integer pointer in XS?
I guess sv needs to be declared. And there was a typo for NewSViv. So now it looks likeTellStick.xs:70:10: error: ‘sv’ undeclared (first use in this function +)
There were some compilation warnings as well, don't know if they are important:if (rv == TELLSTICK_SUCCESS) { HV* hv = newHV(); SV *sv = newSV(0); sv = newSVpv(protocol, 0); hv_stores(hv, "protocol", sv); sv = newSVpv(model, 0); hv_stores(hv, "model", sv); sv = newSViv(id); hv_stores(hv, "id", sv); sv = newSViv(dataTypes); hv_stores(hv, "dataTypes", sv); RETVAL = newRV_noinc(hv); } else { RETVAL = &PL_sv_undef; }
But the code works!!!In file included from /usr/lib/arm-linux-gnueabihf/perl/5.20/CORE/perl +.h:5102:0, from TellStick.xs:2: TellStick.xs: In function ‘XS_TellStick_tdSensor’: TellStick.xs:76:31: warning: passing argument 2 of ‘Perl_newRV_noinc’ +from incompatible pointer type RETVAL = newRV_noinc(hv); ^ /usr/lib/arm-linux-gnueabihf/perl/5.20/CORE/embed.h:371:48: note: in d +efinition of macro ‘newRV_noinc’ #define newRV_noinc(a) Perl_newRV_noinc(aTHX_ a) ^ In file included from /usr/lib/arm-linux-gnueabihf/perl/5.20/CORE/perl +.h:5061:0, from TellStick.xs:2: /usr/lib/arm-linux-gnueabihf/perl/5.20/CORE/proto.h:2874:19: note: exp +ected ‘struct SV * const’ but argument is of type ‘struct HV *’ PERL_CALLCONV SV* Perl_newRV_noinc(pTHX_ SV *const sv)
I get the correct values:
Thank you very much for your help! Now I have a way forward for implementing the rest of fucntion in the C library.protocol: mandolyn, model: temperaturehumidity, sensorId: 51, dataType +s: 3 protocol: mandolyn, model: temperaturehumidity, sensorId: 61, dataType +s: 3
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^3: Passing integer pointer in XS? (XS << Perl)
by tye (Sage) on Jul 18, 2016 at 21:10 UTC | |
by ikegami (Patriarch) on Jul 18, 2016 at 21:31 UTC | |
by tye (Sage) on Jul 18, 2016 at 22:14 UTC | |
by ikegami (Patriarch) on Jul 19, 2016 at 07:02 UTC | |
by Anonymous Monk on Jul 19, 2016 at 12:19 UTC | |
|
Re^3: Passing integer pointer in XS?
by ikegami (Patriarch) on Jul 18, 2016 at 21:18 UTC |