diff options
author | jfrijters <jfrijters> | 2014-07-08 17:22:29 +0400 |
---|---|---|
committer | jfrijters <jfrijters> | 2014-07-08 17:22:29 +0400 |
commit | 8c97fe7679e58ca61cb6e5bc7d8eb8c2f9c7945e (patch) | |
tree | fb6afb9a62fe4a997a6c5c027f2b53969daa263c | |
parent | 0cd5cff853dd38c936f23b02d27a6ef17ac4427e (diff) |
Fixed serialization issue.
-rw-r--r-- | runtime/LambdaMetafactory.cs | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/runtime/LambdaMetafactory.cs b/runtime/LambdaMetafactory.cs index 55ac1c1a..82bcd0cc 100644 --- a/runtime/LambdaMetafactory.cs +++ b/runtime/LambdaMetafactory.cs @@ -192,7 +192,7 @@ namespace IKVM.Internal { tb.AddInterfaceImplementation(marker.TypeAsBaseType); } - ctor = CreateConstructorAndDispatch(context, cpi.GetArgTypes(), tb, interfaceMethod, implParameters, samMethodType, implMethod, instantiatedMethodType, serializable); + ctor = CreateConstructorAndDispatch(context, interfaceType, cpi.GetArgTypes(), tb, interfaceMethod, implParameters, samMethodType, implMethod, instantiatedMethodType, serializable); AddDefaultInterfaceMethods(context, methodList, tb); return true; } @@ -356,7 +356,7 @@ namespace IKVM.Internal return Rt.IsAssignableTo(Ru); } - private static MethodBuilder CreateConstructorAndDispatch(DynamicTypeWrapper.FinishContext context, TypeWrapper[] args, TypeBuilder tb, + private static MethodBuilder CreateConstructorAndDispatch(DynamicTypeWrapper.FinishContext context, TypeWrapper interfaceType, TypeWrapper[] args, TypeBuilder tb, MethodWrapper interfaceMethod, TypeWrapper[] implParameters, ClassFile.ConstantPoolItemMethodType samMethodType, ClassFile.ConstantPoolItemMethodHandle implMethod, ClassFile.ConstantPoolItemMethodType instantiatedMethodType, bool serializable) { @@ -553,7 +553,7 @@ namespace IKVM.Internal MethodBuilder writeReplace = tb.DefineMethod("writeReplace", MethodAttributes.Private, Types.Object, Type.EmptyTypes); ilgen = CodeEmitter.Create(writeReplace); context.TypeWrapper.EmitClassLiteral(ilgen); - ilgen.Emit(OpCodes.Ldstr, interfaceMethod.DeclaringType.Name.Replace('.', '/')); + ilgen.Emit(OpCodes.Ldstr, interfaceType.Name.Replace('.', '/')); ilgen.Emit(OpCodes.Ldstr, interfaceMethod.Name); ilgen.Emit(OpCodes.Ldstr, interfaceMethod.Signature.Replace('.', '/')); ilgen.EmitLdc_I4((int)implMethod.Kind); |