[fpc-devel] "Default" discussion for SmartPointers etc
    Michael Van Canneyt 
    michael at freepascal.org
       
    Thu Jul 28 13:30:52 CEST 2016
    
    
  
On Thu, 28 Jul 2016, Maciej Izak wrote:
> 2016-07-28 12:40 GMT+02:00 Michael Van Canneyt <michael at freepascal.org>:
>
>> I don't see how you can solve nullable var parameters in native code.
>>
>
> I'd like to present how TNullable<T> works in my implementation (compilable
> and runable program ;)
Yes, I remember you demonstrate it. But I think there are some caveats.
>
> === code begin ===
> procedure Test1(var x: Integer);
> begin
>  x := 1;
> end;
Assume a is null before the call to test1:
   test1(a);
1. What happens if this procedure is empty, i.e. no write is performed ?
    (or it is performed conditionally)
    On return, is a null or not ?
2. Assume your variable is null before the call to Test1.
    What is the value on entry into Test1 ? i.e. what happens if
    begin
      if X=0 then
        x:=1
      else
        X:=23;
    end
3. How do you detect an actual write ?
4. What happens if Test1 is an external C procedure ?
Michael.
    
    
More information about the fpc-devel
mailing list