Bonjour à tous :-)
J'ai un problème avec le debugger (DBG) lors du transtypage d'un TJsonObject.
Ci-dessous un programme pour montrer ce bug.
1) Je crée un nouvelle Class TJSonObjectChild qui hérite de TJSonObject, sans implémenter de nouvelles procédures ou functions.
2) Lorsque je veux transtyper un TJSonObject en TJSonObjectChild avec TJSonObjectChild(...), j'ai une erreur du debugger Invalid typecast
Lorsque je décoche l'option [Verifiy method calls (-CR)] dans Options du projet/Compiler Options/Debugging,
je n'ai aucune erreur et ça marche nickel...
J'ai testé cela avec Lazarus 2.0.2 et 2.1. -> pas de differences
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 program TestHeritageJson; uses fpjson, jsonparser; type TJSonObjectChild = class(TJsonObject); var vJO: TJSonObjectChild; vJSD: TJSonData; begin vJSD := GetJSON('{"name" : "test"}'); vJO := TJSonObjectChild(vJSD); { ICI exception class 'RunError(219)' : Invalid typecast } Write(vJO.AsJSON); end.
Avec DBG 7.3.50 et 7.7.50 -> pas de differences.
Est-ce moi qui déconne ?
Est-ce un bug de Lazarus, de DBG ?
A quoi sert cette option -CR ?
Merci de m'avoir lu jusqu'ici ;-)
Partager