Hi all,
During the last dev cycle, I put a lot of time into the "padthread" effort
and had to postpone work on my other projects, and thus, naturally, I'm now
concentrating more on other work.
However, the problems with concurrency kind of forced us into reworking some
aspects of memory management -- something we intend to tackle anyway, since
Yoshimi does have some known problems with ad hoc memory allocations. The
first step to address those would be to replace scattered local allocations
by calls to a small number of central memory management functions. And the
good news is that -- forced by "padthread", we have already done a huge
chunk of that tedious refactoring work. And this is an effort that
I am keen to press ahead further in the near future.
At this point it is worth mentioning that Kristian's work, extracting
the "parameters" objects, was the foundation and the first step towards
addressing those pervasive memory management and configuration problems.
The general scheme is:
- replace raw pointers by wrapped pointers / smart pointers
- change the function signatures to require/enforce those wrapped pointers.
- get rid of any explicitly coded "delete" statements (which are error prone)
- extract any scattered "new" statements and...
- try to distill common usage patters,...
- which can then be delegated to a small number of allocation functions.
When done right, there should be no impact on performance, and this
can now be verified better with the help of the Testsuite -- so rounding
out and extending test coverage is also part of that effort.
-- Hermann
_______________________________________________
Yoshimi-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/yoshimi-devel