View Issue Details

IDProjectCategoryView StatusLast Update
0000590Ecere SDKcompilerpublic2014-07-11 18:57
Reporterjerome Assigned To 
PriorityurgentSeveritymajorReproducibilityhave not tried
Status newResolutionopen 
Target Version0.46 eC II 
Summary0000590: Wrong indirection level inside Map index operator for unit classes
DescriptionGenerated code is:
__ecereMethod___ecereNameSpace__ecere__com__Iterator_Index(&__internalIterator, (uint64)(*(unsigned int *)(uint64)(((uint64)(*(unsigned int *)this)))), 0x0);

Should read:

__ecereMethod___ecereNameSpace__ecere__com__Iterator_Index(&__internalIterator, (uint64)*this, 0x0);
Steps To Reproduceimport "EDA"

Map<Organization, DataRow> rowMap { };
class Organization : uint { };

class MatchedOrg : Organization
{
   char * OnGetString(char * tempString, void * fieldData, bool * needClass)
   {
      DataRow row = rowMap[this];
      return "";
   }
}
Additional InformationrowMap[*&this]; works around the problem
TagsNo tags attached.

Activities

There are no notes attached to this issue.

Issue History

Date Modified Username Field Change
2011-05-20 23:32 jerome New Issue
2011-05-20 23:32 jerome Status new => assigned
2011-05-20 23:32 jerome Assigned To => jerome
2011-05-20 23:32 jerome Summary Wrong indirection level inside Map index operator for Unit class => Wrong indirection level inside Map index operator for unit classes
2012-03-08 15:59 redj Target Version old 0.44.pre3 => 0.45 Ginkakuji
2012-03-29 07:50 redj Category => eC Compiling Tools
2012-03-29 07:50 redj Project @2@ => Ecere SDK
2013-04-24 20:36 jerome Status assigned => new
2013-04-24 20:36 jerome Assigned To jerome =>
2014-07-11 18:57 jerome Target Version 0.45 Ginkakuji => 0.46 eC II