|Anonymous | Login | Signup for a new account||2019-04-19 03:24 CEST|
|Main | My View | View Issues | Change Log | Roadmap | Docs|
|Viewing Issue Simple Details|
|ID||Category||Severity||Reproducibility||Date Submitted||Last Update|
|0006665||[JEDI VCL] 02 Installation||block||always||2019-03-03 10:05||2019-04-14 13:13|
|Status||new||Product Version||Daily / GIT|
|Summary||0006665: 10.3 Rio Update 1: Installer fails to compile JvAppIniStorage.pas|
Installer fails to compile the JvAppIniStorage.pas file as Rio made some changes to TMemIniFile JvAppIniStorage.pas needs to adapt to.
The reason is, that JvAppIniStorage.pas accesses the non public/protected FSection field from TMemIniFile via class helper which is no longer present in Rio.
At least between XE8 and Rio 10.3 Update 1 there was a change in TMemIniFile where the code of JVCL has not been completely adapted to.
The change was, that TMemIniFile is now based on TDictionary and the FSection StringList used in the old MemIni code is no longer there. Unfortunately JVCL has several places where it wants to access FSection.
|Tags||No tags attached.|
Further investigation leads me to the suspiccion that the code path around line 251 which is for Rio and newer makes not much sense. It introduces a ClassHelper which introduces a FSections TStringList field, but this ins nowhere created nor freed and later on it is being accessed.
Shouldn't that code work with the FEsctions dictionary from TMemIniFile?
Another question: the original newsgroup poster's report pointed to line 251 which is in the pre Rio code path. If I'm not mistaken he talked about a Rio x64 isntallation. Why is the 64 bit compiler stepping into this path? Is there an issue with the RTL330_UP define in the 64 bit compiler?
Ok, looking at it again (after being pointed out that I didn't read it right the first time) I found out that this part of the code is for versions from D2009 to Tokyo, but not for Rio.
But this now leads to the question why the error messages posted by the original reporter of this in the JVCL newsgroup point to line 251 which is inside this block (at least in the JVCL version available via GetIt directly after installing Rio 10.3 Update 1)?
Here's the relevant excerpt from the original report from the newsgroup:
Embarcadero Delphi for Win64 compiler version 33.0
Copyright (c) 1983,2017 Embarcadero Technologies, Inc.
C:\ProgramData\Jvcl 201902Git\jvcl\run\JvAppIniStorage.pas(251) Erreur: E2003 Identificateur non déclaré : 'IndexOf'
C:\ProgramData\Jvcl 201902Git\jvcl\run\JvAppIniStorage.pas(251) Avertissement: W1023 Comparaison de types signés et non signés - opérandes élargis
C:\ProgramData\Jvcl 201902Git\jvcl\run\JvAppIniStorage.pas(260) Erreur: E2010 Types incompatibles : 'TStringList' et 'TMemIniFile.TSections'
JvCore.dpk(2501) Fatale: F2063 Impossible de compiler l'unité utilisée 'JvAppIniStorage.pas' "
The interesting question for me is, where is this error coming from?
I'm compiling the current release without any problems with latest Rio Relase.
|2019-03-03 10:05||mh||New Issue|
|2019-03-03 10:05||mh||Issue Monitored: mh|
|2019-03-03 15:18||mh||Note Added: 0021611|
|2019-03-04 22:49||mh||Note Added: 0021613|
|2019-04-14 13:13||jfudickar||Note Added: 0021695|
|Mantis 1.1.6[^] Copyright © 2000 - 2008 Mantis Group|