View Issue Details

IDProjectCategoryView StatusLast Update
0000072Ecere SDKcompilerpublic2013-05-19 22:15
Reporterjerome Assigned Tojerome  
PriorityimmediateSeveritymajorReproducibilityhave not tried
Status closedResolutionfixed 
Target Version0.44 Ryoan-jiFixed in Version0.44 Ryoan-ji 
Summary0000072: Straighten out passing whether passing by address or value any_object / typed_object
DescriptionFor DataRow::SetData:

Basic data types (systemClass) SIZE > 4: address of
Basic data types (systemClass) SIZE <= 4: by value
Bit Classes SIZE > 4: address of
Bit Classes SIZE <= 4: by value
Enum Classes SIZE > 4: address of
Enum Classes SIZE <= 4: by value
Classes (normalClass and noHeadClass): instance pointer
Structures: address of structure object

For DataRow::GetData:

Basic data types (systemClass): address of
Bit Classes: address of
Enum Classes: address of
Classes (normalClass and noHeadClass): address of instance pointer
Structures: address of structure object
char * : adderss of (treated as systemClass)

For any_object, typed_object:
WARNING: OnCopy follows DataRow::SetData rules

Basic data types (systemClass): address of
Classes (normalClass and noHeadClass): instance pointer
Structures: address of structure object
Bit Classes: address of
Enum Classes: address of

For typed_object &, any_object &:
WARNING: OnCopy follows DataRow::SetData rules

Basic data types (systemClass): address of
Classes (normalClass and noHeadClass): address of instance pointer
Structures: address of structure object
Bit Classes: address of
Enum Classes: address of

* Should typed_object and any_object be changed to pass by value when size <= 4 ?
* How will 64 bit be handled? Pass all by values?
* Make sure size is set for Units and Bit classes
Tagsv0.44d2

Activities

jerome

2010-07-26 03:35

administrator   ~0000257

Verify if what is said in the description is still accurate in light of the latest
changes.

Answer the questions in there.

Mark this issue as resolved if so is the case.

jerome

2010-12-06 19:24

administrator   ~0000416

Last edited: 2011-08-10 02:57

SetData now takes in an 'any_object' and GetData returns an any_object.

Basic data types (systemClass): address of
Classes (normalClass and noHeadClass): instance pointer
Structures: address of structure object
char * : string pointer

* Should typed_object and any_object be changed to pass by value when size <= 4 ?
    No. Everything is now passed by (value) (I think I meant to say 'address' here), ListBox::SetData/GetData use any_object now to elegantly pass arguments.

* How will 64 bit be handled? Pass all by (values) (I think I meant to say 'address' here)?
    Yes. It's already all passed by (values) (I think I meant to say 'address' here).

* Make sure size is set for Units and Bit classes
    It is now. size is now separated into typeSize (the data type) and structSize (the class implementation struct).

We still have to wrap up these improvements by simplifying the compiler's work:

http://ecere.com/mantis/view.php?id=305

Issue History

Date Modified Username Field Change
2008-05-09 05:14 jerome New Issue
2008-05-09 05:17 jerome Description Updated
2008-05-09 05:17 jerome Additional Information Updated
2008-05-09 05:51 jerome Description Updated
2008-05-09 05:51 jerome Additional Information Updated
2008-05-09 05:56 jerome Description Updated
2008-05-27 02:25 jerome Description Updated
2009-01-09 21:36 jerome Assigned To => jerome
2009-01-09 21:36 jerome Severity minor => major
2009-01-09 21:36 jerome Status new => assigned
2009-12-07 07:26 jerome Priority normal => immediate
2010-07-07 02:59 redj Target Version => 0.44d2
2010-07-07 04:10 redj Tag Attached: v0.44d2
2010-07-25 21:33 redj Relationship added child of 0000429
2010-07-26 03:35 jerome Note Added: 0000257
2010-07-26 19:33 thexa4 Fixed in Version => 0.44 draft 2
2010-07-26 19:33 thexa4 Target Version 0.44d2 =>
2010-12-06 19:24 jerome Note Added: 0000416
2010-12-06 19:25 jerome Status assigned => resolved
2010-12-06 19:25 jerome Resolution open => fixed
2011-08-10 02:57 jerome Note Edited: 0000416
2012-03-08 15:32 redj Target Version old 0.44.pre2 => 0.44 Ryoan-ji
2012-03-08 17:31 redj Relationship deleted child of 0000429
2012-03-08 18:07 redj Fixed in Version => 0.44 Ryoan-ji
2012-03-29 07:50 redj Category => eC Compiling Tools
2012-03-29 07:50 redj Project @2@ => Ecere SDK
2013-05-19 22:15 jerome Status resolved => closed