excel-d v0.0.1 - D API to write functions callable from Excel

Atila Neves via Digitalmars-d-announce digitalmars-d-announce at puremagic.com
Wed Apr 26 03:52:29 PDT 2017


On Tuesday, 25 April 2017 at 22:21:33 UTC, Ali Çehreli wrote:
> On 04/25/2017 01:20 PM, jmh530 wrote:
> > [...]
> numbers, allocate
> > [...]
> to free the
> > [...]
>
> Yes.
>
> > [...]
> freed by D
> > [...]
>
> Correct.
>
> > [...]
> of just the
> > [...]
> C++ smart
> > [...]
> totally grok it
> > [...]
>
> Just by guessing, what we don't see here is that there is a 
> wrapping layer that does the copying. Disposal logic is called 
> by that layer. So, your scope(exit) takes place at a higher 
> layer. Here is made-up-pseudo-code by me. :)
>
> TypeForExcel wrapper_actually_called_by_excel(/* ... */) {
>     /* ... */
>
>     double[] ret_from_your_function = FuncReturnArrayNoGc(/* 
> ... */);
>     scope (exit) disposal_function(ret_from_your_function);
>
>     TypeForExcel arg_to_excel = 
> copy_for_excel(ret_from_your_function);
>     return arg_to_excel;
> }
>
> Ali

Yep, that's pretty much what happens, except that the 
`scope(exit)` is inside a `static if` that checks for the 
presence of `@Dispose`.

Atila


More information about the Digitalmars-d-announce mailing list