Adug Meeting 20/11/2023 an Outline
AGM
Some discussion about some of the items in the financials.
Why was Venue expenses so big?
-Partly Back Invoices from Perth
Tiger Tech and Amazon bigger this year?
-Delayed reimbursements for CC payments
Financials look quite good, (around +9K from last year)
Financials were agreed too, and the AGM was closed.
Thank You Frank.
Grahame Grieve presentation
Double Free’s
Grahame doesn’t like double free’s, and the issues they can cause
(potentially much later on, and in some totally unrelated piece of code)
His Demo’s showed how objects were Freed, and then new objects took
their place.
Then when you accidently Freed object A a second time, it actually Freed
object D, that was then broken, even though you hadn’t done anything
wrong with object D.
Partly because of Last In First Out allocation strategy from the memory
manager used. Which probably makes these things a bit quicker to fail.
So issues found out earlier.
(Using Lazarus)
He has a memory manager utility that runs on top of your existing memory
manager, that will overwrite freed memory with EB’s. So that if you try
to reuse an object after freeing it, or free it again, it will break
immediately and is hopefully obvious what has happened.
Grahame uses a TBaseObject as a base for all his business objects,
TBaseObject has tracking information eg. Name of class as text, a serial
number, and links to a table (amongst other things) that helps when
attempting to track down this type of problem.
It takes over the free method.
It doesn’t work with FreeAndNil() because of this.
Ensuring there are no memory leaks is a first step.
Thank You Grahame
Other things:
TMenu
TSynEdit
TTreeView
Vincent
Delphi.Dev Package Manager.
How Rust does things.