View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0001248 | Ecere SDK | compiler:ecc | public | 2024-09-14 01:07 | 2024-09-14 01:08 |
Reporter | jerome | Assigned To | |||
Priority | normal | Severity | minor | Reproducibility | always |
Status | new | Resolution | open | ||
Product Version | 0.44.15 | ||||
Summary | 0001248: Arguments of virtual method are not evaluated if method is null | ||||
Description | e.g., in a.compute(args[numArgs++], evaluator, computeType, stylesClass); numArgs++ does not happen if a is null or if compute() is still null from an abstract class. | ||||
Additional Information | The current generated code looks like: __internal_VirtualMethod ? __internal_VirtualMethod(((struct __ecereNameSpace__ecere__com__Instance *)(uintptr_t)__ecereProp___ecereNameSpace__ecere__com__Iterator_Get_data(&a)), &args[numArgs++], evaluator, computeType, stylesClass) : (unsigned int)1; with nothing being done in the else. Instead, the arguments should ideally always be evaluated before the checks. Somewhat welated to this, we could also improve on the a calling object currently being evaluated multiple times for the checks and for the this parameter. | ||||
Tags | No tags attached. | ||||
Date Modified | Username | Field | Change |
---|---|---|---|
2024-09-14 01:07 | jerome | New Issue | |
2024-09-14 01:07 | jerome | Description Updated | |
2024-09-14 01:07 | jerome | Additional Information Updated | |
2024-09-14 01:08 | jerome | Description Updated | |
2024-09-14 01:08 | jerome | Additional Information Updated | |
2024-09-14 01:08 | jerome | Description Updated | |
2024-09-14 01:08 | jerome | Additional Information Updated |