You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@subversion.apache.org by Jens Peters <jp...@gmx.de> on 2006/01/03 14:54:50 UTC

RE: [SVN1.3] javahl compile problem with VS2005

> I tried my best to compile the whole subversion-1.3/apache-2.0.55 package
with VS2005. 
> I worked out some minor problem quite easy (eg. the buildsystem forgot to
link 
> libsvn_ra_dav with libneon.lib; I got a lot of "unresolved external symbol
error" 
> in the first place) but while compiling javahl I encounterd (it seems so
to me) a 
> real error in combination with VS2005:

> ..\..\..\subversion\bindings\java\javahl\native\JNIUtil.cpp(197) : error
> C2664: 'apr_conv_ucs2_to_utf8' : cannot convert parameter 1 from 'WCHAR
[260]' to 'const apr_wchar_t *'

> I don't know exactly why VS don't want to cast automatically because at
other 
> places where apr_conv_ucs2_to_utf8 is used this isn't necessary. But since
the return 
> value from apr_palloc (param utf8_path) is casted as well in JNIUtil.cpp
at line 195 
> (not at the other apr_conv_ucs2_to_utf8 places!) the following fix seems
correct to me:

> -apr_err = apr_conv_ucs2_to_utf8 (ucs2_path, &inwords,
> -                                 utf8_path, &outbytes);
> +apr_err = apr_conv_ucs2_to_utf8 ((apr_wchar_t *)ucs2_path, &inwords,
> +                                 utf8_path, &outbytes);

> Sorry for not creating a real patchfile, but you repository isn't
available and so I had to use the compressed source file :)

I have attached a real pachfile:


[[[
* subversion/bindings/java/javahl/native/JNIUtil.cpp
  - fixes compile error with VS2005 
    'apr_conv_ucs2_to_utf8' : cannot convert parameter 1 from 'WCHAR [260]'
to 'const apr_wchar_t *'
]]]



Index: subversion/bindings/java/javahl/native/JNIUtil.cpp
===================================================================
--- subversion/bindings/java/javahl/native/JNIUtil.cpp	(revision 17955)
+++ subversion/bindings/java/javahl/native/JNIUtil.cpp	(working copy)
@@ -193,7 +193,7 @@
         inwords = lstrlenW (ucs2_path);
         outbytes = outlength = 3 * (inwords + 1);
         utf8_path = (char *)apr_palloc (pool, outlength);
-        apr_err = apr_conv_ucs2_to_utf8 (ucs2_path, &inwords,
+        apr_err = apr_conv_ucs2_to_utf8 ((apr_wchar_t *)ucs2_path,
&inwords,
                                          utf8_path, &outbytes);
         if (!apr_err && (inwords > 0 || outbytes == 0))
           apr_err = APR_INCOMPLETE;