1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
|
commit cc7f0798d314cdac14b90e427abe22e99c6bd591
Author: Milian Wolff <mail@milianw.de>
Date: Fri Nov 18 16:23:36 2011 +0100
properly initialize client context for compatibility with subversion API
this should hopefully fix the crash with svn 1.7 in kdevelop, please test
BUG: 284061
diff --git a/plugins/subversion/kdevsvncpp/context.cpp b/plugins/subversion/kdevsvncpp/context.cpp
index d277591..ddbb657 100644
--- a/plugins/subversion/kdevsvncpp/context.cpp
+++ b/plugins/subversion/kdevsvncpp/context.cpp
@@ -65,7 +65,7 @@ public:
bool logIsSet;
int promptCounter;
Pool pool;
- svn_client_ctx_t ctx;
+ svn_client_ctx_t * ctx;
std::string username;
std::string password;
std::string logMessage;
@@ -205,26 +205,26 @@ public:
svn_auth_open(&ab, providers, pool);
// initialize ctx structure
- memset(&ctx, 0, sizeof(ctx));
+ svn_client_create_context(&ctx, pool);
// get the config based on the configDir passed in
- svn_config_get_config(&ctx.config, c_configDir, pool);
+ svn_config_get_config(&ctx->config, c_configDir, pool);
// tell the auth functions where the config is
svn_auth_set_parameter(ab, SVN_AUTH_PARAM_CONFIG_DIR,
c_configDir);
- ctx.auth_baton = ab;
- ctx.log_msg_func = onLogMsg;
- ctx.log_msg_baton = this;
- ctx.notify_func = onNotify;
- ctx.notify_baton = this;
- ctx.cancel_func = onCancel;
- ctx.cancel_baton = this;
+ ctx->auth_baton = ab;
+ ctx->log_msg_func = onLogMsg;
+ ctx->log_msg_baton = this;
+ ctx->notify_func = onNotify;
+ ctx->notify_baton = this;
+ ctx->cancel_func = onCancel;
+ ctx->cancel_baton = this;
#if (SVN_VER_MAJOR >= 1) && (SVN_VER_MINOR >= 2)
- ctx.notify_func2 = onNotify2;
- ctx.notify_baton2 = this;
+ ctx->notify_func2 = onNotify2;
+ ctx->notify_baton2 = this;
#endif
}
@@ -234,7 +234,7 @@ public:
if (!value)
param = (void *)"1";
- svn_auth_set_parameter(ctx.auth_baton,
+ svn_auth_set_parameter(ctx->auth_baton,
SVN_AUTH_PARAM_NO_AUTH_CACHE,
param);
}
@@ -245,7 +245,7 @@ public:
username = usr;
password = pwd;
- svn_auth_baton_t * ab = ctx.auth_baton;
+ svn_auth_baton_t * ab = ctx->auth_baton;
svn_auth_set_parameter(ab, SVN_AUTH_PARAM_DEFAULT_USERNAME,
username.c_str());
svn_auth_set_parameter(ab, SVN_AUTH_PARAM_DEFAULT_PASSWORD,
@@ -654,13 +654,13 @@ public:
Context::operator svn_client_ctx_t * ()
{
- return &(m->ctx);
+ return m->ctx;
}
svn_client_ctx_t *
Context::ctx()
{
- return &(m->ctx);
+ return m->ctx;
}
void
|