diff options
author | Owen Fraser-Green <owen@discobabe.net> | 2004-03-24 13:15:20 +0000 |
---|---|---|
committer | Owen Fraser-Green <owen@discobabe.net> | 2004-03-24 13:15:20 +0000 |
commit | f33453896716e69cacd0d065b7cc633258678946 (patch) | |
tree | ed10e70ef8b1cb259a5d58afa276ef1ba94af56c /mono/ProxyBuilder.cs | |
parent | 93aa62035612121523adf1ba47c27dd22866cb25 (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.cs | 5 |
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); } |