On 07.06.2010 10:43, Florian Weimer wrote:
Is the following the correct code sequence to return an array
reference or nothing (if result is 0) from an XS function?

        PPCODE:
          AV *result = 0;
          if (some_condition) {
              result = newAV();
              av_push(result, some_value);
          }
          if (result) {
              EXTEND(SP, 1);
              PUSHs(newRV_inc((SV*)result));
          }

It's not mentioned in perlxs, but some CPAN modules seem to use this.

Looks correct, yes. And it does appear in `perldoc perlxs'; look under "Returning Undef And Empty Lists".

Reply via email to