From: Michael D. <mik...@us...> - 2004-06-24 15:26:21
|
Update of /cvsroot/nhibernate/nhibernate/src/NHibernate/Collection In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv5621/NHibernate/Collection Modified Files: ArrayHolder.cs Log Message: ToArray was not working when a null element was added to the array. I was getting a cast exception - this was appearing with null elements going into a DateTime array. Index: ArrayHolder.cs =================================================================== RCS file: /cvsroot/nhibernate/nhibernate/src/NHibernate/Collection/ArrayHolder.cs,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -d -r1.8 -r1.9 *** ArrayHolder.cs 28 Mar 2004 06:01:29 -0000 1.8 --- ArrayHolder.cs 24 Jun 2004 15:26:12 -0000 1.9 *************** *** 146,157 **** public override void EndRead(CollectionPersister persister, object owner) { ! for(int i = 0 ;i < tempListIdentifier.Count; i++) { object element = persister.ElementType.ResolveIdentifier(tempListIdentifier[i], session, owner); tempList[i] = element; } - array = ((ArrayList)tempList).ToArray(elementClass); //tempList = null; //tempListIdentifier = null; --- 146,158 ---- public override void EndRead(CollectionPersister persister, object owner) { ! array = System.Array.CreateInstance(elementClass, tempListIdentifier.Count); ! for(int i = 0 ;i < tempListIdentifier.Count; i++) { object element = persister.ElementType.ResolveIdentifier(tempListIdentifier[i], session, owner); + ( (System.Array)array ).SetValue(element, i); tempList[i] = element; } //tempList = null; //tempListIdentifier = null; |