typemap 625 B

123456789101112131415161718192021222324
  1. B::MAGIC T_MG_OBJ
  2. B::REGEXP T_RX_OBJ
  3. INPUT
  4. T_RX_OBJ
  5. if (SvROK($arg)) {
  6. int type = SvTYPE(SvRV($arg));
  7. if (type == SVt_REGEXP || type == SVt_PVMG) {
  8. IV tmp = SvIV((SV*)SvRV($arg));
  9. $var = INT2PTR($type,tmp);
  10. }
  11. else
  12. croak(\"ref to $var is of type %d, not a reference to REGEXP\", type);
  13. }
  14. else
  15. croak(\"$var is of type %d, not a reference to REGEXP\", SvTYPE($arg));
  16. T_MG_OBJ
  17. if (SvROK($arg)) {
  18. IV tmp = SvIV((SV*)SvRV($arg));
  19. $var = INT2PTR($type,tmp);
  20. }
  21. else
  22. croak(\"$var is not a reference\")