Torsion 1.1.006 Beta
by Tom Spilman · in Torsion · 02/07/2007 (4:12 am) · 31 replies
Hey guys.
Now that we've shipped 1.0 we're working on a 1.1 release which addresses remaining bugs. As part of that process we're releasing a 1.1 beta today that fixes all the bugs we've seen reported in the last week.

Old build taken down... see this thread for the latest beta.
NOTE: I didn't expect this, but after testing it on my home box it seems that this beta will end your trial if you haven't already registered... don't install this version if you want to continue with your trial period. Registered users will not be affected.
The changes in this build:
In a couple more weeks if the 1.1 beta is solid and no more bugs crop up, we'll make it the official release.
Now that we've shipped 1.0 we're working on a 1.1 release which addresses remaining bugs. As part of that process we're releasing a 1.1 beta today that fixes all the bugs we've seen reported in the last week.

Old build taken down... see this thread for the latest beta.
NOTE: I didn't expect this, but after testing it on my home box it seems that this beta will end your trial if you haven't already registered... don't install this version if you want to continue with your trial period. Registered users will not be affected.
The changes in this build:
Quote:* Fixed ScriptSense bug where an object declaration with a copy source would not have its fields parsed.As usual be sure to post bugs to our mantis bugtracker.
* Changed bug fix which forced the Find dialog to loose focus when 'Enter' was pressed.
* Fixed bug in the project config dialog where build exports checkbox would not be saved.
* Fixed ScriptSense bug where fields or overloaded functions could appear in member lists more than once.
* Replaced incorrect new script icon.
* Added additional GDI resource cleanup code.
* Changed technique for updating ScriptSense which reduced CPU usage by up to 80%.
* Fixed flicker of the types dropdown when updating ScriptSense data.
* Added error message when saving project over read-only or locked file.
* Fixed update check logic to work properly for minor version updates.
* Fixed ScriptSense generation thread to avoid COW strings; a possible cause of crashes on shutdown.
* Replaced low resolution project icon with new one.
* Added fix for Ignition registration system.
* Incremented minor version.
In a couple more weeks if the 1.1 beta is solid and no more bugs crop up, we'll make it the official release.
About the author
#22
I went thru nearly all my old SVN revisions and on every one i encountered the same behavior... tons of GDI objects created. Some older revisions created less, but it still ballooned to a big number after time. I think either the usage pattern of the betas or frankly old instabilities kept people from noticing or bothering to report issues with this.
So i gave up on trying to find a change that caused it and instead went back to trying to fix it. After looking for a few days i found an old tool from MSDN Magazine that would help track GDI handle allocation and specific types of handles in use. After some testing i found that fonts, bitmaps, and DCs were the main culprits with fonts being the worst.
So i set off on looking to see how i'm using fonts. Suspiciously the main usage of fonts in Torsion is the wxStyledTextCtrl which is used for all script editing windows as well as the output and find results windows. So on a hunch i started looking at the underlying code. After a little fiddling i found that yes indeed it creates hundereds of fonts when it only really needs a 3-4. This isn't a problem with a very simple use of wxStyledTextCtrl, but Torsion uses it alot. So in my test project this knocked off 1000 GDI objects.
Next i'm moving on the the bitmaps then finally DCs. I suspect it's all related to the bad implementation of wxStyledTextCtrl which has been lurking in wxWidgets for years now.
So this problem should be 100% solved in the next release. Thanks for everyones patience on this.
02/18/2007 (6:44 am)
Hey everyone. I had a breakthru in the high GDI object issue tonight and figured i should report back to you guys.I went thru nearly all my old SVN revisions and on every one i encountered the same behavior... tons of GDI objects created. Some older revisions created less, but it still ballooned to a big number after time. I think either the usage pattern of the betas or frankly old instabilities kept people from noticing or bothering to report issues with this.
So i gave up on trying to find a change that caused it and instead went back to trying to fix it. After looking for a few days i found an old tool from MSDN Magazine that would help track GDI handle allocation and specific types of handles in use. After some testing i found that fonts, bitmaps, and DCs were the main culprits with fonts being the worst.
So i set off on looking to see how i'm using fonts. Suspiciously the main usage of fonts in Torsion is the wxStyledTextCtrl which is used for all script editing windows as well as the output and find results windows. So on a hunch i started looking at the underlying code. After a little fiddling i found that yes indeed it creates hundereds of fonts when it only really needs a 3-4. This isn't a problem with a very simple use of wxStyledTextCtrl, but Torsion uses it alot. So in my test project this knocked off 1000 GDI objects.
Next i'm moving on the the bitmaps then finally DCs. I suspect it's all related to the bad implementation of wxStyledTextCtrl which has been lurking in wxWidgets for years now.
So this problem should be 100% solved in the next release. Thanks for everyones patience on this.
#23
I was worried Torsion was trying to turn my laptop into a bomb or something after using it all day :)
02/18/2007 (9:06 pm)
Awesome news Tom!I was worried Torsion was trying to turn my laptop into a bomb or something after using it all day :)
#24
02/18/2007 (9:22 pm)
Great news Tom.
#25
02/19/2007 (6:59 am)
Glad to hear it. Just waiting for release.
#26
02/19/2007 (8:59 am)
I just stumbled across this thread, very good news indeed. Thank you Tom =)
#27
I've registered my copy today and found that it crush sometimes when I close it.
At least twice:
Unhandled exception at 0x7c910f29 in torsion.exe: 0xC0000005: Access violation reading location 0x00000000.
call stack
> ntdll.dll!7c910f29()
[Frames below may be incorrect and/or missing, no symbols loaded for ntdll.dll]
ntdll.dll!7c910d5c()
msvcr71.dll!7c34218a()
torsion.exe!0047bd60()
torsion.exe!00483aa2()
msvcr71.dll!7c3476a0()
msvcr71.dll!7c348d11()
torsion.exe!006e742e()
kernel32.dll!7c816d4f()
kernel32.dll!7c8399f3()
02/20/2007 (3:01 pm)
Tom, there is a problem:I've registered my copy today and found that it crush sometimes when I close it.
At least twice:
Unhandled exception at 0x7c910f29 in torsion.exe: 0xC0000005: Access violation reading location 0x00000000.
call stack
> ntdll.dll!7c910f29()
[Frames below may be incorrect and/or missing, no symbols loaded for ntdll.dll]
ntdll.dll!7c910d5c()
msvcr71.dll!7c34218a()
torsion.exe!0047bd60()
torsion.exe!00483aa2()
msvcr71.dll!7c3476a0()
msvcr71.dll!7c348d11()
torsion.exe!006e742e()
kernel32.dll!7c816d4f()
kernel32.dll!7c8399f3()
#28
I may just stop deleting Autocomp data on shutdown and let the OS clean it up. This solves the problem... albeit not the right way... but it does solve it. I'm hoping to not do this, so i've been putting it off until i have no other choice.
02/20/2007 (7:39 pm)
@Igor - There seems to still be a race condition in the autocomp thread that sometimes causes it to delete a pointer twice on shutdown. Its harmless in that no data is lost, but it is annoying and unprofessional. I may just stop deleting Autocomp data on shutdown and let the OS clean it up. This solves the problem... albeit not the right way... but it does solve it. I'm hoping to not do this, so i've been putting it off until i have no other choice.
#29
02/21/2007 (12:29 pm)
Thanks for explanation. This ain't such a problem though.
Torque Owner Neo Binedell
I have found one of the big culprits to be "Find in Files"...
That seems to be one of the main indicators, perhaps a place to find a major contributor to the issue?