#exult@irc.freenode.net logs for 8 Dec 2012 (GMT)

Archive Today Yesterday Tomorrow
Exult homepage

[01:56:15] --> i30817 has joined #exult
[01:57:36] <i30817> wtsup?
[01:57:37] <i30817> I had a few doubts about a patch i'm doing.
[01:57:39] <i30817> If you've checked the forum topic, you'd know i have some problems with sound - alsa not outputing anything and timidity not finding it's cfg.
[01:58:03] <i30817> Well i found the reason for timidity not finding the cfg. By default it searches the current dir for it.
[01:58:41] <i30817> Which won't work in linux (and may work in windows if you plop the cfg on the install dir, due to the way shortcuts work).
[01:59:52] <i30817> I made a small patch to use the timidity default cfg (as, from a timidity install). Only i would prefer to remove the dependency on timidity wholesale and only have 'suggests freepats'
[02:00:26] <i30817> And it seems very possible for the launchpad compile, due to the way it works.
[02:01:41] <i30817> The linux install has a absolute path for resources, based not on ~, but on the root,
[02:01:43] <i30817> /usr/share/games/exult
[02:01:44] <i30817> But windows has no such thing though.
[02:05:04] <i30817> I don't know what would be a adequate place for searching the file on windows.
[02:05:06] <i30817> And i'm pretty sure that if i do:
[02:05:08] <i30817> +#define CONFIG_FILE "~/.exult/timidity.cfg"
[02:05:09] <i30817> (for linux)
[02:05:11] <i30817> The functions that take that string probably will not accept the ~ meta.
[02:09:29] <i30817> And it won't work with defines anyway, since that sort of thing needs to be runtime.
[02:17:13] <i30817> BTW, what is this PENTAGRAM_IN_EXULT define. It's weird.
[02:20:26] <i30817> Anyway, where would one put in a file to be included into the windows install? In linux, it's easy, stuff it into the debian dir. In windows, it's harder.
[02:21:14] <i30817> Or i can just patch it for linux, to be used by the ppa.
[02:21:21] <i30817> Maybe better.
[02:56:36] <Marzo> Progress report: as far as I can tell, there are no non-audio memory leaks remaining on the Exult menu now; this includes going to the game menus and clicking start new game, then back to menu, then into another game, and so forth
[02:56:55] <Marzo> Still have to try the intros, credits and quotes
[03:04:42] <-- Marzo has left IRC (Ping timeout: 250 seconds)
[03:14:03] <-- sh4rm4 has left IRC (Remote host closed the connection)
[03:16:17] --> sh4rm4 has joined #exult
[03:50:04] <-- i30817 has left IRC (Quit: ChatZilla [Firefox 17.0.1/20121129151842])
[09:52:10] --> Marzo has joined #exult
[09:54:12] <-- Dominus has left IRC (Ping timeout: 264 seconds)
[09:54:54] --> Dominus has joined #exult
[09:54:54] --- ChanServ gives channel operator status to Dominus
[11:15:07] <Colourle1s> [08:57] <Marzo> (there are LOTS of leaks) << the problem with lots of them is I was ignoring them because anything that was 'important' would get overridden when changing between SI and BG. I never considered what would happen switching between different versions of the same game
[11:15:15] --- Colourle1s is now known as Colourless
[11:15:39] <Colourless> and the thing is, its better now than it used to be too
[11:15:54] <Colourless> at one point i didn't think it was even going to possible to drop out from the games back to the exult menu
[11:17:16] <Marzo> I am not saying you are wrong, but some leaks were pretty basic stuff -- such as Gamemenu_gump::do_exult_menu doing a 'new Gamemenu_gump()' which was never deleted
[11:17:36] <Marzo> But yeah, several leaks had to do with changing between BG and SI
[11:17:54] <Marzo> Or even BG and FoV, or SI and SS, or config menu to game
[11:18:35] <Marzo> Other leaks were my fault, and I can't figure out what I was thinking -- creating a std::string by passing strdup(xx)
[11:19:18] <Marzo> I will break up the commit into 'eliminating warnings', 'shutting up Valgrind' and 'fixing stuff'
[12:09:15] <-- Dominus has left IRC (Ping timeout: 260 seconds)
[12:09:54] --> Dominus has joined #exult
[12:09:54] --- ChanServ gives channel operator status to Dominus
[12:22:27] <Marzo> Dominus: lots of stuff in SVN
[12:33:22] <wjp> nice :-)
[12:37:57] <Marzo> Results so far:
[12:37:58] <Marzo> ==19921== HEAP SUMMARY:
[12:37:58] <Marzo> ==19921== in use at exit: 43,505 bytes in 502 blocks
[12:37:58] <Marzo> ==19921== total heap usage: 52,819 allocs, 52,317 frees, 7,656,551 bytes allocated
[12:37:58] <Marzo> ==19921==
[12:37:58] <Marzo> ==19921== Searching for pointers to 502 not-freed blocks
[12:37:58] <Marzo> ==19921== Checked 1,364,376 bytes
[12:37:59] <Marzo> ==19921==
[12:37:59] <Marzo> ==19921== LEAK SUMMARY:
[12:38:00] <Marzo> ==19921== definitely lost: 0 bytes in 0 blocks
[12:38:00] <Marzo> ==19921== indirectly lost: 0 bytes in 0 blocks
[12:38:01] <Marzo> ==19921== possibly lost: 0 bytes in 0 blocks
[12:38:01] <Marzo> ==19921== still reachable: 0 bytes in 0 blocks
[12:38:02] <Marzo> ==19921== suppressed: 43,505 bytes in 502 blocks
[12:38:30] <Marzo> All suppressions are due to SDL and libX11
[12:38:46] <Marzo> Still need to go over the intros and the actual games
[12:38:56] <Marzo> And I just found out an audio-related leak
[12:39:10] <Marzo> (which is taken into account on the results above)
[12:42:57] <Dominus> yeah!!!!
[12:43:28] * Dominus needs to tweak his automated build script to not run when a job is underway...
[12:45:05] <Marzo> Of course, when I enable audio it skyrockets
[12:45:10] <Dominus> marzo, BG gumps.vga is still being used after opening the menu setup and then going to the SI menu
[12:46:22] <Dominus> (when I actually start a SI game the gump is freed/overwritten by SI)
[12:47:29] <Dominus> nice that you can now go from the setup menu to the SI menu without having the obviously wrong palette. Thanks
[12:48:59] <Marzo> Dominus: how are you determining that BG gumps.vga is still being used?
[12:49:50] <Marzo> Anyway, it is probably harmless
[12:50:05] <Marzo> Since, as you say, it is freed when starting a game
[12:50:11] <Colourless> the gumps.vga is intentional... the setup menu uses it
[12:50:17] <Colourless> options
[12:50:20] <Colourless> or whatever its called
[12:50:22] <Marzo> We know
[12:57:47] <Dominus> Marzo: os x process explorer is showing me the files currently being used/locked whatever by Exult
[12:58:06] <Marzo> Ah, I see
[12:59:45] <Marzo> Anyway, it is harmless
[13:00:02] <Marzo> It will just make the config menu load slightly faster
[13:03:42] <-- Kirben has left IRC ()
[13:53:40] <Dominus> down to 72 known bugs, including the disappearing objects bug that is still left open :)
[13:54:11] <Serel> Yaay!
[14:22:57] <Marzo> Add another host of memory leaks going the way of the dodo
[15:00:27] <Marzo> SI and BG intros and menus are now entirely leak free
[15:01:12] <Marzo> Now to try the games themselves
[15:15:07] <-- shazza has left IRC (Ping timeout: 256 seconds)
[16:22:53] <Dominus> seriously, when you are done with that we are almost in a release shape.
[16:23:49] <Dominus> I'm going to take another look at the screwed earth serpent (hopefully filler problem as well) next - since that is also a visual disturbing thing...
[19:24:44] <Marzo> This is odd
[19:25:16] <Marzo> I uncovered evidence of a massive leak, but I am still no closer to finding it
[19:26:48] <Marzo> Basically: not all NPCs seem to be deleted when the map is cleared
[19:27:06] <Marzo> Usually, only one party member seems to be deleted
[19:27:08] <Marzo> Hm
[19:27:27] <Marzo> This may indicate list corruption
[19:49:01] <-- Dominus has left IRC (Read error: Connection reset by peer)
[19:49:32] --> Dominus has joined #exult
[19:49:33] --- ChanServ gives channel operator status to Dominus
[20:57:11] <-- Dominus has left IRC (Ping timeout: 255 seconds)
[20:57:58] --> Dominus has joined #exult
[20:57:58] --- ChanServ gives channel operator status to Dominus
[21:13:30] --> shazza has joined #exult
[21:18:00] <-- shazza has left IRC (Ping timeout: 250 seconds)
[22:18:59] --> Kirben has joined #exult
[22:18:59] --- ChanServ gives channel operator status to Kirben
[23:16:52] <Marzo> ACK! DAMMIT FINGOLFIN!
[23:17:17] <Marzo> How come no one realize how bad the destructor of T_Object_list really is?
[23:18:22] <Dominus> that must have been ancient then
[23:19:21] <Marzo> 11 years and 11 months ago
[23:19:30] <Dominus> wow
[23:19:31] <Marzo> The first version of the file has a bug
[23:19:39] <Marzo> Which has survived to this day
[23:20:07] <Marzo> Almost exactly 11 years and 11 months, in fact
[23:21:56] <Marzo> You have no idea how frustrating it is to try to track down a leak when you have a huge sinkhole covering it up
[23:22:36] <Dominus> judging from the time you started talking about it and the time it is now, I can at least imagine...
[23:22:37] <Marzo> And now, a change in a single line resulted in a halving of the number of errors reported
[23:23:40] <Marzo> Counting the suppressions, that means I now have to deal with 4 more leaks compared to 160
[23:24:18] <Serel> Maybe I should get off my backside and get back to learning to code someday.
[23:33:35] --> Malignant_Manor has joined #exult
[23:33:36] <Dominus> hmm, hacked the serpent face so the text stays centered but couldn't make the serpent face centered (with higher resolutions)
[23:33:46] <Dominus> hi Malignant_Manor
[23:33:59] <Dominus> excellent timing, I was about to go :)
[23:34:05] <Malignant_Manor> I don't really remember much about that bug report.
[23:34:19] <Malignant_Manor> I don't think I ever looked at the code.
[23:34:53] <Dominus> it took me a while to find it
[23:36:54] <Dominus> I had hoped you had looked more into it back then (two years ago :))
[23:37:45] <Malignant_Manor> That's a lot of memory leak commits
[23:38:29] <Dominus> marzo's on a roll
[23:39:57] <Malignant_Manor> I don't know what more to say about the Great Hierophant issue.
[23:41:52] <Dominus> probably nothing one can say anymore
[23:41:59] <Marzo> Well, I can load BG and reload several times in a row without Valgrind reporting any leaks
[23:42:10] <Marzo> Will do the same for SI now, then do the endings
[23:43:51] <Malignant_Manor> I know a lot isn't released when loading a save.
[23:44:42] <Marzo> That has been fixed
[23:45:01] <Marzo> It is largely due to a nearly 12 year old bug
[23:45:09] <Malignant_Manor> I haven't had a chance to mess with anything.
[23:49:14] <Dominus> bah, probably going to have to beg Marzo or wjp for help with this serpent face stuff as well :(
[23:49:32] <Marzo> As soon as I am done with these leaks, I can lend a hand
[23:49:39] <Dominus> Malignant_Manor: do you know a good trigger for the guardian in BG and SI?
[23:49:44] <Dominus> Thanks Marzo
[23:50:01] <Malignant_Manor> I can't remember offhand.
[23:50:23] <Marzo> For BG, going north of Trinsic to Paws always triggers him once
[23:50:27] <Malignant_Manor> Can't you make speech eggs?
[23:50:45] <Marzo> I suppose laying eggs is easier :-)
[23:51:17] <Malignant_Manor> There's a game data bug you might want to look at.
[23:51:28] <Marzo> Which one?
[23:51:52] <Malignant_Manor> sourceforge.net/tracker/?func=detail&aid=3146999&group_id=2335&atid=102335
[23:52:01] <Dominus> probably but I'm going to have to start a Windows VM to make such an egg (my libglade stuff is in sorry state)
[23:52:17] <Malignant_Manor> The fellowship child should spawn as a monster and move around but it doesn't.
[23:52:56] <Dominus> good night. Marzo thanks for battling the leaks!!!
[23:53:03] <Malignant_Manor> You can see this at the Isle of the Avatar, south of the throne.
[23:54:23] <Malignant_Manor> I have no idea how the original handled monster class with no monster info.
[23:54:23] <Marzo> And, of course... now with the leaks fixed, I will have to add a method to kill Jeff's object notification system to prevent deleted objects from being used as if not deleted