Attribute-Storage

 view release on metacpan or  search on metacpan

lib/Attribute/Storage.xs  view on Meta::CPAN

void
_get_attr_hash(rv, create)
    SV  *rv
    int  create

  INIT:
    SV    *subject;
    SV    *hash = NULL;
    MAGIC *magic;

  PPCODE:
    if(!SvROK(rv))
      croak("Cannot fetch attributes hash of a non-reference value");
    subject = SvRV(rv);

    if(SvTYPE(subject) >= SVt_PVMG)
      /* Perl doesn't like calling mg_find() on non-magical SVs */
      for(magic = mg_find(subject, PERL_MAGIC_ext); magic; magic = magic->mg_moremagic) {
        if(magic->mg_type == PERL_MAGIC_ext && magic->mg_virtual == &vtbl) {
          hash = magic->mg_obj;
          break;



( run in 1.698 second using v1.01-cache-2.11-cpan-71847e10f99 )