Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
06/01/17 11:29:49 (7 years ago)
Author:
gkronber
Message:

#2520 introduced StorableConstructorFlag type for StorableConstructors

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/PersistenceReintegration/HeuristicLab.Persistence/4.0/Core/TypeInfo.cs

    r14927 r15018  
    120120      var ctor = Type.GetConstructors(BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic)
    121121                     .Where(x => StorableConstructorAttribute.IsStorableConstructor(x))
    122                      .Where(x => (x.GetParameters().Length == 1) && (x.GetParameters()[0].ParameterType == typeof(bool)))
     122                     .Where(x => (x.GetParameters().Length == 1) && (x.GetParameters()[0].ParameterType == typeof(StorableConstructorFlag)))
    123123                     .FirstOrDefault();
    124124      if (ctor != null) {
    125125        DynamicMethod dm = new DynamicMethod("", typeof(object), null, Type, true);
    126126        ILGenerator ilgen = dm.GetILGenerator();
    127         ilgen.Emit(OpCodes.Ldc_I4_1); // load true
     127        var local = ilgen.DeclareLocal(typeof(StorableConstructorFlag));
     128        ilgen.Emit(OpCodes.Ldloca_S, local);
     129        ilgen.Emit(OpCodes.Initobj, typeof(StorableConstructorFlag)); // load default value for StorableConstructorFlag
     130        ilgen.Emit(OpCodes.Ldloc_0);
    128131        ilgen.Emit(OpCodes.Newobj, ctor);
    129132        ilgen.Emit(OpCodes.Ret);
Note: See TracChangeset for help on using the changeset viewer.