[mapguide-commits] r8843 - in sandbox/jng/aspnet50/Web/src: MapGuideApi MapGuideDotNetCoreApi

svn_mapguide at osgeo.org svn_mapguide at osgeo.org
Mon Nov 23 04:49:59 PST 2015


Author: jng
Date: 2015-11-23 04:49:59 -0800 (Mon, 23 Nov 2015)
New Revision: 8843

Modified:
   sandbox/jng/aspnet50/Web/src/MapGuideApi/MapGuideApiGen.xml
   sandbox/jng/aspnet50/Web/src/MapGuideDotNetCoreApi/Makefile.am
   sandbox/jng/aspnet50/Web/src/MapGuideDotNetCoreApi/dotnetcore.i
Log:
Fix linux string marshaling for .net Core on Linux

Modified: sandbox/jng/aspnet50/Web/src/MapGuideApi/MapGuideApiGen.xml
===================================================================
--- sandbox/jng/aspnet50/Web/src/MapGuideApi/MapGuideApiGen.xml	2015-11-23 12:13:54 UTC (rev 8842)
+++ sandbox/jng/aspnet50/Web/src/MapGuideApi/MapGuideApiGen.xml	2015-11-23 12:49:59 UTC (rev 8843)
@@ -75,6 +75,11 @@
 #elseif defined(JAVA)
   typedef std::wstring  STRINGPARAM;
   typedef signed char   BYTE;  //mapped to byte in Java
+#elseif defined(DOTNETCORE)
+  typedef std::wstring  STRINGPARAM;
+  typedef char*         BYTE_ARRAY_IN;
+  typedef char*         BYTE_ARRAY_OUT;
+  typedef unsigned char BYTE;    //mapped to byte in C#
 #else // .Net
   typedef char*         BYTE_ARRAY_IN;
   typedef char*         BYTE_ARRAY_OUT;

Modified: sandbox/jng/aspnet50/Web/src/MapGuideDotNetCoreApi/Makefile.am
===================================================================
--- sandbox/jng/aspnet50/Web/src/MapGuideDotNetCoreApi/Makefile.am	2015-11-23 12:13:54 UTC (rev 8842)
+++ sandbox/jng/aspnet50/Web/src/MapGuideDotNetCoreApi/Makefile.am	2015-11-23 12:49:59 UTC (rev 8843)
@@ -28,7 +28,7 @@
 
 nodist_libMapGuideDotNetCoreUnmanagedApi_la_SOURCES = MgApi_wrap.cpp
 
-AM_CXXFLAGS = @CXXFLAGS@ -fno-strict-aliasing -fno-var-tracking-assignments
+AM_CXXFLAGS = @CXXFLAGS@ -fno-strict-aliasing -fno-var-tracking-assignments -DDOTNETCORE
 
 libMapGuideDotNetCoreUnmanagedApi_la_LIBADD = \
     -lACE \
@@ -458,4 +458,4 @@
 	../../../BuildTools/WebTools/IMake/Linux/IMake ../MapGuideApi/MapGuideApiGen.xml C#
 	cp -f dotnetcore.i language.i
 	../../../BuildTools/WebTools/IMake/Linux/IMake ../MapGuideApi/Constants.xml C# ./Constants.cs
-	../../../Oem/SWIGEx/Linux/swig -c++ -csharp -dllname MapGuideDotNetCoreUnmanagedApi -namespace OSGeo.MapGuide -proxydir ./Custom -baseexception MgException -clsidcode getclassid.code -clsiddata m_cls_id -catchallcode catchall.code -dispose "((MgDisposable*)arg1)->Release()" -rethrow "e->Raise();" -nodefault -noconstants -module MapGuideDotNetCoreUnmanagedApi -o MgApi_wrap.cpp -lib ../../../Oem/SWIGEx/Lib MapGuideApi.i
+	../../../Oem/SWIGEx/Linux/swig -c++ -csharp -DDOTNETCORE -dllname MapGuideDotNetCoreUnmanagedApi -namespace OSGeo.MapGuide -proxydir ./Custom -baseexception MgException -clsidcode getclassid.code -clsiddata m_cls_id -catchallcode catchall.code -dispose "((MgDisposable*)arg1)->Release()" -rethrow "e->Raise();" -nodefault -noconstants -module MapGuideDotNetCoreUnmanagedApi -o MgApi_wrap.cpp -lib ../../../Oem/SWIGEx/Lib MapGuideApi.i

Modified: sandbox/jng/aspnet50/Web/src/MapGuideDotNetCoreApi/dotnetcore.i
===================================================================
--- sandbox/jng/aspnet50/Web/src/MapGuideDotNetCoreApi/dotnetcore.i	2015-11-23 12:13:54 UTC (rev 8842)
+++ sandbox/jng/aspnet50/Web/src/MapGuideDotNetCoreApi/dotnetcore.i	2015-11-23 12:49:59 UTC (rev 8843)
@@ -29,11 +29,7 @@
     $1 = (STRINGPARAM) $input;
 #else
     //out typemap - LINUX (DOTNETCORE)
-    size_t len = wcslen($input);
-    xstring u16String = xstring((XMLCh*)$input, len);
-    lstring u32String;
-    UnicodeString::UTF16toUTF32(u16String.c_str(),u32String);
-    $1 = (STRINGPARAM) u32String.c_str();
+    $1 = (STRINGPARAM) X2W((XMLCh*)$input);
 #endif
 #else
     $1 = (STRINGPARAM) $input;
@@ -56,7 +52,8 @@
     xstring u16String;
     UnicodeString::UTF32toUTF16((const LCh*) result.c_str(), u16String);
     $result = SWIG_csharp_string_callback((int)(u16String.length()+1)*sizeof(LCh));
-    wcscpy((wchar_t*)$result, u16String.c_str());
+    //wcscpy((wchar_t*)$result, u16String.c_str());
+    XMLString::copyString((XMLCh*)$result, u16String.c_str());
 #endif
 #else
     $result = SWIG_csharp_string_callback((int)(result.length()+1)*sizeof(wchar_t));
@@ -83,4 +80,4 @@
 ///////////////////////////////////////////////////////////
 // Global functions
 //
-void MgInitializeWebTier(STRINGPARAM configFile);
\ No newline at end of file
+void MgInitializeWebTier(STRINGPARAM configFile);



More information about the mapguide-commits mailing list