Sharing the code in here is a bit hard (hence the github link in the first post, which points to the whole project). Without the gRPC library installed and without the complete project, you can't run it.

In general, I find it quicker to solve these types of problems in a small (tiny; just enough) standalone piece of test code. (Which Inline::C is perfect for.)

Anyhow, you guessed right :-) Many thanks for that! I think the T_OPAQUE is exactly what I need.

Cool. Down to vague memories of a similar problem a few tears ([sic] though on second thoughts, the typo wasn't so far wrong :) years ago.

One other memory -- that is even vaguer and thus may have holes. You can get away with only using T_OPAQUE for those function args, like your Code constructor, where you are receiving foreign objects as parameters and need access to the sv_ref; and T_PTROBJ (and so benefit from the auto-deboxing), for object handles that are native (eg, the equivalent of self in object method and similar).

I seem to remember it took a bit of experiment get the typedefs right to avoid warnings in the XS code; but don't remember the details.


With the rise and rise of 'Social' network sites: 'Computers are making people easier to use everyday'
Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
"Science is about questioning the status quo. Questioning authority". I knew I was on the right track :)
In the absence of evidence, opinion is indistinguishable from prejudice.

In reply to Re^5: PerlXS typemap and reference counting by BrowserUk
in thread PerlXS typemap and reference counting by joyrex2001

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.