typemap 970 B

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