[Mono-bugs] [Bug 69106][Maj] New - TextInfo constructor

bugzilla-daemon@bugzilla.ximian.com bugzilla-daemon@bugzilla.ximian.com
Thu, 4 Nov 2004 15:07:57 -0500 (EST)

Please do not reply to this email- if you want to comment on the bug, go to the
URL shown below and enter your comments there.

Changed by juancri@tagnet.org.


--- shadow/69106	2004-11-04 15:07:57.000000000 -0500
+++ shadow/69106.tmp.29388	2004-11-04 15:07:57.000000000 -0500
@@ -0,0 +1,50 @@
+Bug#: 69106
+Product: Mono: Class Libraries
+Version: unspecified
+OS: All
+OS Details: 
+Status: NEW   
+Priority: Major
+Component: CORLIB
+AssignedTo: mono-bugs@ximian.com                            
+ReportedBy: juancri@tagnet.org               
+QAContact: mono-bugs@ximian.com
+TargetMilestone: ---
+Summary: TextInfo constructor
+TextInfo has two constructor. The constructor with NO parameters [textInfo
+()] is used only by CultureInfo:ConstructInvariant method. When this empty
+constructor is used, the private fields "ci" (culture info) and
+"m_win32LangID" are never used! That causes errors doing this:
+string text = "Hi, this is a TeSt";
+string lower = CultureInfo.InvariantCulture.TextInfo.ToLower (text);
+Unhandled Exception: System.ArgumentNullException: Argument cannot be null.
+Parameter name: culture
+in <0x0003b> System.String:ToLower (System.Globalization.CultureInfo)
+in <0x0004b> System.Globalization.TextInfo:ToLower (string)
+in <0x0002e> Test:Main ()
+Because the TextInfo of InvariantCulture is being constructed using the
+empty  constructor.
+The CultureInfo:ConstructInvariant method calls the constructor by this way:
+textinfo=new TextInfo ();
+It shoould be:
+textinfo=new TextInfo (this, cultureID);
+That fixes the error. Yo should also delete the constructor with no parametes.