]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
FS-6796 #comment avoid use c++ string since it causing troubles
authorSeven Du <dujinfang@gmail.com>
Fri, 5 Sep 2014 23:17:44 +0000 (07:17 +0800)
committerSeven Du <dujinfang@gmail.com>
Fri, 5 Sep 2014 23:18:38 +0000 (07:18 +0800)
src/include/switch_cpp.h
src/mod/languages/mod_lua/Makefile.am
src/mod/languages/mod_lua/freeswitch.i
src/mod/languages/mod_lua/mod_lua_wrap.cpp
src/mod/languages/mod_lua/my_swigable_cpp.h
src/switch_cpp.cpp

index 2db54e8627fd98112693b052290f538ebd53e10c..07c77ec54fd3fe13c6485e4257eff0f19f71fd51 100644 (file)
@@ -3,7 +3,6 @@
 
 
 #ifdef __cplusplus
-#include <string>
 extern "C" {
 #endif
 #ifdef DOH
@@ -150,9 +149,9 @@ SWITCH_DECLARE(bool) email(char *to, char *from, char *headers = NULL, char *bod
                 SWITCH_DECLARE_CONSTRUCTOR Stream(void);
                 SWITCH_DECLARE_CONSTRUCTOR Stream(switch_stream_handle_t *);
                 virtual SWITCH_DECLARE_CONSTRUCTOR ~ Stream();
-                SWITCH_DECLARE(std::string) read();
+                SWITCH_DECLARE(const char *) read(int *len);
                 SWITCH_DECLARE(void) write(const char *data);
-                SWITCH_DECLARE(void) raw_write(std::string data);
+                SWITCH_DECLARE(void) raw_write(const char *data, int len);
                 SWITCH_DECLARE(const char *) get_data(void);
         };
 
index d727bf88b672057b109c8b205b7b3b5cfacca2bf..2a0b51e9332b9221aeabcf09357ac21a1defc36c 100644 (file)
@@ -33,5 +33,4 @@ lua_wrap: mod_lua_extra.c
        swig -lua -c++ -I../../../../src/include -oh mod_lua_wrap.h -o mod_lua_wrap.cpp freeswitch.i
        echo "#include \"mod_lua_extra.c\"" >> mod_lua_wrap.cpp
        patch -s -p0 -i hack.diff
-       sed -i -e 's/lua_strlen/lua_rawlen/' mod_lua_wrap.cpp
 
index 4f50313588f89b218ceeba4002fc581419a8aff5..a5c9d75a14f75563bb414615f5294843c3a0bc3f 100644 (file)
@@ -43,7 +43,8 @@
 %newobject API::execute;
 %newobject API::executeString;
 
-%include "std_string.i"
+%include "typemaps.i"
+%apply int *OUTPUT { int *len };
 
 /**
  * tell swig to grok everything defined in these header files and
index 1c761e892b99646a350ddd58b7b603153e9179c7..5c4483a24044a7888903f28fba7ab15ff1d853ee 100644 (file)
@@ -2946,18 +2946,18 @@ fail:
 static int _wrap_Stream_raw_write(lua_State* L) {
   int SWIG_arg = -1;
   Stream *arg1 = (Stream *) 0 ;
-  std::string arg2 ;
-  
+  char *arg2 = (char *) 0 ;
+
   SWIG_check_num_args("raw_write",2,2)
   if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("raw_write",1,"Stream *");
-  if(!lua_isstring(L,2)) SWIG_fail_arg("raw_write",2,"std::string");
+  if(!lua_isstring(L,2)) SWIG_fail_arg("raw_write",2,"char const *");
   
   if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_Stream,0))){
     SWIG_fail_ptr("Stream_raw_write",1,SWIGTYPE_p_Stream);
   }
   
-  (&arg2)->assign(lua_tostring(L,2),lua_rawlen(L,2));
-  (arg1)->raw_write(arg2);
+  arg2 = (char *)lua_tostring(L, 2);
+  (arg1)->raw_write((char const *)arg2,lua_rawlen(L, 2));
   SWIG_arg=0;
   
   return SWIG_arg;
index 60538b7f91f936a3cef45f568b0e096fb2308944..80f689e56ef891d393d8622df2b00e0d8d8c8e8f 100644 (file)
@@ -22,7 +22,10 @@ class Stream {
            Stream(void);
             Stream(switch_stream_handle_t *);
                               virtual ~ Stream();
-       string read();
+
+%inline %{
+       char *read(int *len);
+%}
        void write(const char *data);
        void raw_write(void *data, int len);
        const char *get_data(void);
index df45e6a1dab32040b8e73e7b3f5c32228fe4b089..270286202754a2886e12a89dfe2aa648932ec635 100644 (file)
@@ -532,22 +532,20 @@ SWITCH_DECLARE_CONSTRUCTOR Stream::~Stream()
 }
 
 /* WARNING!! you are not encouraged to use this unless you understand the risk!!! */
-SWITCH_DECLARE(std::string) Stream::read()
+SWITCH_DECLARE(const char *) Stream::read(int *len)
 {
        uint8_t *buff;
-       this_check(std::string(""));
-       int len = 0;
 
-       this_check(std::string());
+       this_check(NULL);
 
-       if (!stream_p->read_function) return std::string();
+       if (!stream_p->read_function) return NULL;
 
-       buff = stream_p->read_function(stream_p, &len);
+       buff = stream_p->read_function(stream_p, len);
 
-       if (!buff) return std::string();
-       if (len < 0) return std::string();
+       if (!buff) return NULL;
+       if (len < 0) return NULL;
 
-       return std::string((const char *)buff, len);
+       return (const char *)buff;
 }
 
 SWITCH_DECLARE(void) Stream::write(const char *data)
@@ -556,10 +554,10 @@ SWITCH_DECLARE(void) Stream::write(const char *data)
        stream_p->write_function(stream_p, "%s", data);
 }
 
-SWITCH_DECLARE(void) Stream::raw_write(std::string data)
+SWITCH_DECLARE(void) Stream::raw_write(const char *data, int len)
 {
        this_check_void();
-       stream_p->raw_write_function(stream_p, (uint8_t *)data.c_str(), data.length());
+       stream_p->raw_write_function(stream_p, (uint8_t *)data, len);
 }
 
 SWITCH_DECLARE(const char *)Stream::get_data()