http://bugs.winehq.org/show_bug.cgi?id=4436
------- Additional Comments From J.A.Gow@furrybubble.co.uk 2006-14-02 17:26 ------- Created an attachment (id=1894) --> (http://bugs.winehq.org/attachment.cgi?id=1894&action=view) Further updated patch to fix one of ole32 issues
I found some errors in the code I included in the earlier patch. This patch corrects these errors. Furthermore this patch results in the storage object now properly cleaning up after itself if it is deleted ahead of streams within it.
This now correctly implements the algorithm I had in mind (I hope)
There is one issue with it that needs to be corrected: I need to call the destructor for the IStream objects from the code but I am not sure where best to place the prototype - would it be better to create a stg_stream.h file and dump it in there, or to place it elsewhere, say in storage.h. At the moment it is unprototyped which throws a warning, but will be OK in 32-bit code. I'd rather not leave it like this. Any suggestions?
Re style - I take your points Mike, however I always thoroughly clean up the patch just before actual submission when development of it is complete in order to remove any redundant changes, alter style etc. During development when the code is being functionally tested it is a lot easier to spot my changes in a several-thousand-line source file when they look different, and it is quicker to code in a style I am used to.The "standard" list implementation is nice and simple, though. Thanks for the pointers here (no pun intended) I didn't immediately realize this existed within the Wine codebase.