Update to the latest IKVM.Reflection
[mono.git] / mcs / class / IKVM.Reflection / Emit / PropertyBuilder.cs
index d48e9d92641b48e7eebab8740ca5f4198110537c..2900f7abb5f0ff425c482f34f820304b5ab2b7c4 100644 (file)
@@ -199,7 +199,11 @@ namespace IKVM.Reflection.Emit
                        rec.Type = typeBuilder.ModuleBuilder.GetSignatureBlobIndex(sig);
                        int token = 0x17000000 | typeBuilder.ModuleBuilder.Property.AddRecord(rec);
 
-                       if (lazyPseudoToken != 0)
+                       if (lazyPseudoToken == 0)
+                       {
+                               lazyPseudoToken = token;
+                       }
+                       else
                        {
                                typeBuilder.ModuleBuilder.RegisterTokenFixup(lazyPseudoToken, token);
                        }
@@ -263,5 +267,22 @@ namespace IKVM.Reflection.Emit
                                return false;
                        }
                }
+
+               internal override bool IsBaked
+               {
+                       get { return typeBuilder.IsBaked; }
+               }
+
+               internal override int GetCurrentToken()
+               {
+                       if (typeBuilder.ModuleBuilder.IsSaved && typeBuilder.ModuleBuilder.IsPseudoToken(lazyPseudoToken))
+                       {
+                               return typeBuilder.ModuleBuilder.ResolvePseudoToken(lazyPseudoToken);
+                       }
+                       else
+                       {
+                               return lazyPseudoToken;
+                       }
+               }
        }
 }