Hi all,

compiling kdewallet.cpp in the Subversion 1.7.5 distribution generates the
following errors with g++-4.7.x:

[QUOTE]

subversion/libsvn_auth_kwallet/kwallet.cpp: In function 'svn_boolean_t 
kwallet_password_get(const char**, apr_hash_t*, const char*, const char*, 
apr_hash_t*, svn_boolean_t, apr_pool_t*)':
subversion/libsvn_auth_kwallet/kwallet.cpp:207:68: error: taking address of 
temporary array
subversion/libsvn_auth_kwallet/kwallet.cpp:217:49: error: taking address of 
temporary array
subversion/libsvn_auth_kwallet/kwallet.cpp: In function 'svn_boolean_t 
kwallet_password_set(apr_hash_t*, const char*, const char*, const char*, 
apr_hash_t*, svn_boolean_t, apr_pool_t*)':
subversion/libsvn_auth_kwallet/kwallet.cpp:277:68: error: taking address of 
temporary array
subversion/libsvn_auth_kwallet/kwallet.cpp:287:49: error: taking address of 
temporary array

[/QUOTE]

I'm attaching a patch to correct the problem after it was reported here:

https://bugs.mageia.org/show_bug.cgi?id=6717

The patch is somewhat crude, so feel free to improve it.

Regards,

        Shlomi Fish

-- 
-----------------------------------------------------------------
Shlomi Fish       http://www.shlomifish.org/
My Aphorisms - http://www.shlomifish.org/humour.html

  :)-<
   +--
    — Moses the Smiley by Shlomi Fish

Please reply to list if it's a mailing list post - http://shlom.in/reply .
--- subversion-1.7.5/subversion/libsvn_auth_kwallet/kwallet.cpp.kdewallet_gpp	2010-12-30 22:46:50.000000000 +0200
+++ subversion-1.7.5/subversion/libsvn_auth_kwallet/kwallet.cpp	2012-07-07 22:56:04.406076841 +0300
@@ -204,17 +204,27 @@
   if (! qApp)
     {
       int argc = 1;
-      app = new QCoreApplication(argc, (char *[1]) {(char *) "svn"});
+      static char * my_argv[1];
+      static char my_arg1[10] = "svn";
+      my_argv[0] = my_arg1;
+      app = new QCoreApplication(argc, my_argv);
     }
 
-  KCmdLineArgs::init(1,
-                     (char *[1]) {(char *) "svn"},
+  {
+    int argc = 1;
+    static char * my_argv[1];
+    static char my_arg1[10] = "svn";
+    my_argv[0] = my_arg1;
+
+    KCmdLineArgs::init(1,
+                     my_argv,
                      get_application_name(parameters, pool),
                      "subversion",
                      ki18n(get_application_name(parameters, pool)),
                      SVN_VER_NUMBER,
                      ki18n("Version control system"),
                      KCmdLineArgs::CmdLineArgKDE);
+  }
   KComponentData component_data(KCmdLineArgs::aboutData());
   svn_boolean_t ret = FALSE;
   QString wallet_name = get_wallet_name(parameters);
@@ -274,17 +284,26 @@
   if (! qApp)
     {
       int argc = 1;
-      app = new QCoreApplication(argc, (char *[1]) {(char *) "svn"});
+      static char * my_argv[1];
+      static char my_arg1[10] = "svn";
+      my_argv[0] = my_arg1;
+      app = new QCoreApplication(argc, my_argv);
     }
 
-  KCmdLineArgs::init(1,
-                     (char *[1]) {(char *) "svn"},
+  {
+    int argc = 1;
+    static char * my_argv[1];
+    static char my_arg1[10] = "svn";
+    my_argv[0] = my_arg1;
+    KCmdLineArgs::init(argc,
+                     my_argv,
                      get_application_name(parameters, pool),
                      "subversion",
                      ki18n(get_application_name(parameters, pool)),
                      SVN_VER_NUMBER,
                      ki18n("Version control system"),
                      KCmdLineArgs::CmdLineArgKDE);
+  }
   KComponentData component_data(KCmdLineArgs::aboutData());
   svn_boolean_t ret = FALSE;
   QString q_password = QString::fromUtf8(password);

Reply via email to