typemap 790 B

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