From: <wsf...@us...> - 2007-09-19 23:47:18
|
Revision: 9945 http://swig.svn.sourceforge.net/swig/?rev=9945&view=rev Author: wsfulton Date: 2007-09-19 16:47:17 -0700 (Wed, 19 Sep 2007) Log Message: ----------- fix director typemaps for wstring& Modified Paths: -------------- trunk/Lib/java/std_wstring.i Modified: trunk/Lib/java/std_wstring.i =================================================================== --- trunk/Lib/java/std_wstring.i 2007-09-19 23:21:03 UTC (rev 9944) +++ trunk/Lib/java/std_wstring.i 2007-09-19 23:47:17 UTC (rev 9945) @@ -119,7 +119,7 @@ jenv->ReleaseStringChars($input, $1_pstr); %} -%typemap(directorout) const wstring & +%typemap(directorout,warning=SWIGWARN_TYPEMAP_THREAD_UNSAFE_MSG) const wstring & %{if(!$input) { SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "null std::wstring"); return $null; @@ -127,7 +127,8 @@ const jchar *$1_pstr = jenv->GetStringChars($input, 0); if (!$1_pstr) return $null; jsize $1_len = jenv->GetStringLength($input); - std::wstring $1_str; + /* possible thread/reentrant code problem */ + static std::wstring $1_str; if ($1_len) { wchar_t *conv_buf = new wchar_t[$1_len]; for (jsize i = 0; i < $1_len; ++i) { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ol...@us...> - 2007-09-20 01:04:40
|
Revision: 9948 http://swig.svn.sourceforge.net/swig/?rev=9948&view=rev Author: olly Date: 2007-09-19 18:04:35 -0700 (Wed, 19 Sep 2007) Log Message: ----------- [Java] Eliminate some unnecessary uses of a temporary buffer allocated using new[]. SF#1796609. Modified Paths: -------------- trunk/Lib/java/std_wstring.i Modified: trunk/Lib/java/std_wstring.i =================================================================== --- trunk/Lib/java/std_wstring.i 2007-09-20 00:19:57 UTC (rev 9947) +++ trunk/Lib/java/std_wstring.i 2007-09-20 01:04:35 UTC (rev 9948) @@ -37,12 +37,10 @@ if (!$1_pstr) return $null; jsize $1_len = jenv->GetStringLength($input); if ($1_len) { - wchar_t *conv_buf = new wchar_t[$1_len]; + $1.reserve($1_len); for (jsize i = 0; i < $1_len; ++i) { - conv_buf[i] = $1_pstr[i]; + $1.append((wchar_t)$1_pstr[i]); } - $1.assign(conv_buf, $1_len); - delete [] conv_buf; } jenv->ReleaseStringChars($input, $1_pstr); %} @@ -56,12 +54,10 @@ if (!$1_pstr) return $null; jsize $1_len = jenv->GetStringLength($input); if ($1_len) { - wchar_t *conv_buf = new wchar_t[$1_len]; + $result.reserve($1_len); for (jsize i = 0; i < $1_len; ++i) { - conv_buf[i] = $1_pstr[i]; + $result.append((wchar_t)$1_pstr[i]); } - $result.assign(conv_buf, $1_len); - delete [] conv_buf; } jenv->ReleaseStringChars($input, $1_pstr); %} @@ -108,12 +104,10 @@ jsize $1_len = jenv->GetStringLength($input); std::wstring $1_str; if ($1_len) { - wchar_t *conv_buf = new wchar_t[$1_len]; + $1_str.reserve($1_len); for (jsize i = 0; i < $1_len; ++i) { - conv_buf[i] = $1_pstr[i]; + $1_str.append((wchar_t)$1_pstr[i]); } - $1_str.assign(conv_buf, $1_len); - delete [] conv_buf; } $1 = &$1_str; jenv->ReleaseStringChars($input, $1_pstr); @@ -130,12 +124,10 @@ /* possible thread/reentrant code problem */ static std::wstring $1_str; if ($1_len) { - wchar_t *conv_buf = new wchar_t[$1_len]; + $1_str.reserve($1_len); for (jsize i = 0; i < $1_len; ++i) { - conv_buf[i] = $1_pstr[i]; + $1_str.append((wchar_t)$1_pstr[i]); } - $1_str.assign(conv_buf, $1_len); - delete [] conv_buf; } $result = &$1_str; jenv->ReleaseStringChars($input, $1_pstr); %} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ol...@us...> - 2007-09-23 21:40:32
|
Revision: 9952 http://swig.svn.sourceforge.net/swig/?rev=9952&view=rev Author: olly Date: 2007-09-23 14:40:29 -0700 (Sun, 23 Sep 2007) Log Message: ----------- Use push_back(wchar_t) instead of append(wchar_t) since append() is non-standard (SF#1799992). Modified Paths: -------------- trunk/Lib/java/std_wstring.i Modified: trunk/Lib/java/std_wstring.i =================================================================== --- trunk/Lib/java/std_wstring.i 2007-09-23 21:39:16 UTC (rev 9951) +++ trunk/Lib/java/std_wstring.i 2007-09-23 21:40:29 UTC (rev 9952) @@ -39,7 +39,7 @@ if ($1_len) { $1.reserve($1_len); for (jsize i = 0; i < $1_len; ++i) { - $1.append((wchar_t)$1_pstr[i]); + $1.push_back((wchar_t)$1_pstr[i]); } } jenv->ReleaseStringChars($input, $1_pstr); @@ -56,7 +56,7 @@ if ($1_len) { $result.reserve($1_len); for (jsize i = 0; i < $1_len; ++i) { - $result.append((wchar_t)$1_pstr[i]); + $result.push_back((wchar_t)$1_pstr[i]); } } jenv->ReleaseStringChars($input, $1_pstr); @@ -106,7 +106,7 @@ if ($1_len) { $1_str.reserve($1_len); for (jsize i = 0; i < $1_len; ++i) { - $1_str.append((wchar_t)$1_pstr[i]); + $1_str.push_back((wchar_t)$1_pstr[i]); } } $1 = &$1_str; @@ -126,7 +126,7 @@ if ($1_len) { $1_str.reserve($1_len); for (jsize i = 0; i < $1_len; ++i) { - $1_str.append((wchar_t)$1_pstr[i]); + $1_str.push_back((wchar_t)$1_pstr[i]); } } $result = &$1_str; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |