[Mono-dev] [Mono-patches] r107198 - trunk/mcs/class/corlib/System

Andreas Nahr ClassDevelopment at A-SoftTech.com
Fri Jul 4 10:53:55 EDT 2008



> -----Ursprüngliche Nachricht-----
> Von: mono-devel-list-bounces at lists.ximian.com [mailto:mono-devel-list-
> bounces at lists.ximian.com] Im Auftrag von Mirco Bauer
> Gesendet: Freitag, 4. Juli 2008 12:59
> An: Andreas Nahr
> Cc: mono-devel-list at lists.ximian.com
> Betreff: Re: [Mono-dev] [Mono-patches] r107198 -
> trunk/mcs/class/corlib/System
> > > >
> > > >  		public static readonly IntPtr Zero;
> > > >
> > > >  #if NET_2_0
> > > >  		[ReliabilityContract (Consistency.MayCorruptInstance,
> > > Cer.MayFail)]
> > > >  #endif
> > > > -		public IntPtr (int i32)
> > > > +		public IntPtr (int value)
> > > >  		{
> > > > -			value = (void *) i32;
> > > > +			m_value = (void *) value;
> > >
> > > afaik the goal can also be archived using this.value = value;
> >
> > Did you try that? I actually had it this way and it refused to
> compile
> > because the value was deemed not initialized. I've got to admit that
> I
> > wasn't exactly sure why it didn't. Potential issue with the compiler
> maybe?
> 
> At least for me it works, using gmcs 1.9.1:
> 
> meebey at redbull:~$ cat test.cs
> using System;
> 
> class Test
> {
> 	int value;
> 
> 	Test(int value)
> 	{
> 		this.value = value;
> 	}
> 
> 	public static void Main ()
> 	{
> 		Test t = new Test(123);
> 		Console.WriteLine(t.value);
> 	}
> }

Are you trying to make a joke? ;)
Of course this works with "normal" types. This is used thousands of times throughout the class libraries.
But in *THIS* case with void * it does not seem to work. So this was the easiest way to fix the problem.

Greetings Andreas

P.S. If you want to make further "tests" maybe mail me private and not through the list to keep the noise low.



More information about the Mono-devel-list mailing list