Lokale Variable, die durch Closure Capture unterbrochen wurde, wenn in der verschachtelten Methode darauf zugegriffen wurde

8

Ich habe es geschafft, dieses Problem zu reduzieren:

%Vor%

Hier wird die capturedString Variable beschädigt, wenn von einer verschachtelten Methode aus darauf zugegriffen wird. Eine Win32-Kompilierung löst EIntOverflow aus, eine Win64-Kompilierung schreibt eine (beschädigte) leere Zeichenfolge aus - entweder kann Build in AV oder andere Exceptions mit einigen Manipulationen provoziert werden, aber in allen Fällen ist der Verweis auf die lokale Variable beschädigt, wenn% co_de eingegeben wird % Prozedur.

Dies scheint nur dann zu passieren, wenn Nested in einer Schließung gefangen ist.

Was läuft falsch?

    
J... 14.08.2017, 19:00
quelle

1 Antwort

3

Das scheint ein Compilerfehler zu sein:

# RSP-18833: Capture by closure korrumpiert die lokale Variable in der verschachtelten Methode

Eine Problemumgehung besteht darin, eine zweite Variable für die Erfassung in der anonymen Methode zu verwenden:

%Vor%     
J... 14.08.2017, 19:27
quelle