View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0000770 | Ecere SDK | compiler:templates | public | 2012-10-29 20:19 | 2016-04-19 05:29 |
Reporter | redj | Assigned To | |||
Priority | immediate | Severity | major | Reproducibility | have not tried |
Status | new | Resolution | open | ||
Target Version | 0.46 eC II | ||||
Summary | 0000770: support for all data types in templates | ||||
Description | void * not supported: Map<void*, int> will not work -- Support Array<void *> Other combinations do not work well: - C (non eC) structs/types - [add here] Map<ProjectNode, int> considerations: - The data type OnCopy/OnFree() handle the assignment of the key - With normal classes/class:struct classes, this means that they key is going to be deleted on Removing the object - For normal classes which do feature a reference count, it could potentially increment the reference count, but it currently does not seem to be doing so - With class:struct classes, the only way to support both freeing or not freeing the data would be some kind of option, either at the Map or Container level, e.g. a Map template parameter [ determine if we want a new issue to implement this ] - For a pointer comparison to occur (as opposed to the default content comparison or OnCompare to be invoked), class_no_expansion should be applied to the key's class | ||||
Tags | No tags attached. | ||||
|
also Array<FieldBox> fieldBoxes { }; fieldBoxes.Find(fieldBox); this will crash there: https://github.com/ecere/sdk/commit/6683e352153e50fe3acb1950e64302604cd458ff (ecere)src/com/dataTypes.ec:364:31 > // TESTING THIS! // TESTING THIS! memberResult = ((int (*)(void *, void *, void *))(void *)memberType._vTbl[__ecereVMethodID_class_OnCompare])(memberType, *(void **)((byte *)data1 + (((member._class.type == normalClass) ? member._class.offset : 0) + member.offset)), *(void **)((byte *)data2 + (((member._class.type == normalClass) ? member._class.offset : 0) + member.offset))); 0 inside ??, /lib/i386-linux-gnu/libc.so.6 1 __ecereNameSpace__ecere__com__String_OnCompare Function, /e/sdk/ecere/src/com/dataTypes.ec:1826 2 __ecereNameSpace__ecere__com__OnCompare Function, /e/sdk/ecere/src/com/dataTypes.ec:365 3 __ecereNameSpace__ecere__com__Container_Find Method, /e/sdk/ecere/src/com/containers/Container.ec:184 4 __ecereNameSpace__eda__TableEditor_AddFieldBox Method, /e/sdk/eda/libeda/src/gui/TableEditor.ec:1391 ... |
Date Modified | Username | Field | Change |
---|---|---|---|
2012-10-29 20:19 | redj | New Issue | |
2012-10-29 20:19 | redj | Status | new => assigned |
2012-10-29 20:19 | redj | Assigned To | => jerome |
2012-10-29 22:17 | jerome | Description Updated | |
2012-10-29 22:18 | jerome | Description Updated | |
2012-10-29 22:19 | jerome | Description Updated | |
2013-02-25 03:00 | redj | Note Added: 0000667 | |
2013-02-25 03:02 | redj | Note Edited: 0000667 | |
2013-02-25 03:02 | redj | Note Edited: 0000667 | |
2013-04-24 13:38 | redj | Description Updated | |
2013-04-24 20:22 | jerome | Assigned To | jerome => |
2013-04-27 06:08 | redj | Status | assigned => new |
2016-04-19 05:29 | jerome | Target Version | 0.44.12 Fixes => 0.46 eC II |