PageRenderTime 41ms CodeModel.GetById 21ms RepoModel.GetById 0ms app.codeStats 0ms

/tags/rel-1-3-29/SWIG/Lib/ruby/jstring.i

#
Swig | 44 lines | 40 code | 4 blank | 0 comment | 0 complexity | d11a6c628a414f385b72196c627c3a96 MD5 | raw file
Possible License(s): LGPL-2.1, Cube, GPL-3.0, 0BSD, GPL-2.0
  1. %include <typemaps/valtypes.swg>
  2. %fragment(SWIG_AsVal_frag(jstring),"header") {
  3. SWIGINTERN int
  4. SWIG_AsVal(jstring)(VALUE obj, jstring *val)
  5. {
  6. if (NIL_P(obj)){
  7. if (val) *val = 0;
  8. return SWIG_OK;
  9. }
  10. if (TYPE(obj) == T_STRING) {
  11. if (val) {
  12. char *cstr = rb_string_value_ptr(&(obj));
  13. jsize len = RSTRING(obj)->len;
  14. *val = JvNewStringLatin1(cstr, len);
  15. }
  16. return SWIG_NEWOBJ;
  17. }
  18. return SWIG_TypeError;
  19. }
  20. }
  21. %fragment(SWIG_From_frag(jstring),"header") {
  22. SWIGINTERNINLINE VALUE
  23. SWIG_From(jstring)(jstring val)
  24. {
  25. if (!val) {
  26. return Qnil;
  27. } else {
  28. jint len = JvGetStringUTFLength(val);
  29. char buf[len];
  30. JvGetStringUTFRegion(val, 0, len, buf);
  31. return rb_str_new(buf,len);
  32. }
  33. }
  34. }
  35. %typemaps_asvalfrom(%checkcode(STRING),
  36. %arg(SWIG_AsVal(jstring)),
  37. %arg(SWIG_From(jstring)),
  38. %arg(SWIG_AsVal_frag(jstring)),
  39. %arg(SWIG_From_frag(jstring)),
  40. java::lang::String *);