summaryrefslogtreecommitdiffstats
path: root/mono/ProxyBuilder.cs
diff options
context:
space:
mode:
authorOwen Fraser-Green <owen@discobabe.net>2004-03-24 13:15:20 +0000
committerOwen Fraser-Green <owen@discobabe.net>2004-03-24 13:15:20 +0000
commitf33453896716e69cacd0d065b7cc633258678946 (patch)
treeed10e70ef8b1cb259a5d58afa276ef1ba94af56c /mono/ProxyBuilder.cs
parent93aa62035612121523adf1ba47c27dd22866cb25 (diff)
Made all DBusTypes take Service in the constructor because Array also needed it in the case of an array of OBJECT_PATH objects.
Diffstat (limited to 'mono/ProxyBuilder.cs')
-rw-r--r--mono/ProxyBuilder.cs5
1 files changed, 3 insertions, 2 deletions
diff --git a/mono/ProxyBuilder.cs b/mono/ProxyBuilder.cs
index 06bdeecb..5bbf3e41 100644
--- a/mono/ProxyBuilder.cs
+++ b/mono/ProxyBuilder.cs
@@ -108,7 +108,7 @@ namespace DBus
for (int parN = 0; parN < pars.Length; parN++) {
ParameterInfo par = pars[parN];
if (!par.IsOut) {
- EmitIn(generator, par.ParameterType, parN);
+ EmitIn(generator, par.ParameterType, parN, serviceF);
}
}
@@ -145,7 +145,7 @@ namespace DBus
typeB.DefineMethodOverride(methodBuilder, method);
}
- private void EmitIn(ILGenerator generator, Type parType, int parN)
+ private void EmitIn(ILGenerator generator, Type parType, int parN, FieldInfo serviceF)
{
Type inParType = Arguments.MatchType(parType);
//generator.EmitWriteLine("methodCall.Arguments.Append(...)");
@@ -157,6 +157,7 @@ namespace DBus
object[] pars = new object[] {generator, parType};
inParType.InvokeMember("EmitMarshalIn", BindingFlags.Static | BindingFlags.Public | BindingFlags.InvokeMethod, null, null, pars, null);
+ generator.Emit(OpCodes.Ldsfld, serviceF);
generator.Emit(OpCodes.Newobj, Arguments.GetDBusTypeConstructor(inParType, parType));
generator.EmitCall(OpCodes.Callvirt, Arguments_AppendMI, null);
}