annotate README.CVS @ 11719:109ee3bfeac5

[gaim-migrate @ 14010] SF Patch #1333770 from corfe83 "Many times in gaim we use the function g_slist_remove(list,node->data) to remove an element from a GSList. If we already have the pointer to the node we want to delete, it is faster to send it the pointer to the node to delete rather than the data of the node (we can do this by calling g_slist_delete_link(list,node)). This change was made while looking at glib's documentation and the code in glib's gslist.c. This is because as the remove/delete function traverses each node in the list, it doesn't need to spend an extra memory access to retrieve the data for each element in the node it is traversing and then compare, it can simply compare the pointer. In my tests outside of gaim, this makes a big difference if the node you are deleting is at a high index in the list. However, even if you're deleting the first node, it about breaks even. So, I've found each case in gaim where we are calling g_slist_remove, and we already have the pointer to the appropriate node to delete (this is often the case when we're doing a for or while loop on a GSList). I've then replaced it with the appropriate call to g_slist_delete_link. I, however, didn't do this in situations where we are explicitly removing the first element in the list, because in those situations it is an unnecessary change. There should be no difference in behavior, but just in case I've tried running it with valgrind, which reports the same number of memory leaks after my patch as before my patch. Of course, I can't guarantee that my normal behavior on gaim is hitting all the functions I've changed, but in general testing it Works For Me (tm)." As with the last patch, this one may not have a practical performance impact (or maybe it does, I have no idea), but it's not worse for any case. Given two ways of doing things where one is always at least as fast and may be faster under some cases, I like to prefer that faster way. This doesn't make the code any uglier, so I'm applying. committer: Tailor Script <tailor@pidgin.im>
author Richard Laager <rlaager@wiktel.com>
date Sat, 22 Oct 2005 20:48:18 +0000
parents e4a27c9aec4c
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
5640
fb438552e4e0 [gaim-migrate @ 6053]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1 If you plan to use gaim CVS, PLEASE read this message in its entirety!
fb438552e4e0 [gaim-migrate @ 6053]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2
9944
e4a27c9aec4c [gaim-migrate @ 10838]
Luke Schierer <lschiere@pidgin.im>
parents: 6798
diff changeset
3 Gaim is a fast-moving project with a somewhat regular release schedule.
e4a27c9aec4c [gaim-migrate @ 10838]
Luke Schierer <lschiere@pidgin.im>
parents: 6798
diff changeset
4 Due to the rate of gaim development, CVS undergoes frequent bursts of
e4a27c9aec4c [gaim-migrate @ 10838]
Luke Schierer <lschiere@pidgin.im>
parents: 6798
diff changeset
5 massive changes, often leaving behind brokenness and partial
e4a27c9aec4c [gaim-migrate @ 10838]
Luke Schierer <lschiere@pidgin.im>
parents: 6798
diff changeset
6 functionality while the responsible developers rewrite some portion of
6797
053b577e08f2 [gaim-migrate @ 7337]
Luke Schierer <lschiere@pidgin.im>
parents: 6246
diff changeset
7 code or seek to add new features.
5640
fb438552e4e0 [gaim-migrate @ 6053]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
8
fb438552e4e0 [gaim-migrate @ 6053]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
9 What this all boils down to is that CVS _WILL_ sometimes be broken.
fb438552e4e0 [gaim-migrate @ 6053]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
10 Because of this, we ask that users who are not interested in
fb438552e4e0 [gaim-migrate @ 6053]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
11 personally tracking down bugs and fixing them (without a lot of
fb438552e4e0 [gaim-migrate @ 6053]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
12 assistance from the developers!) avoid CVS and use releases. Since
fb438552e4e0 [gaim-migrate @ 6053]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
13 releases will be made often, this should not prevent anyone from using
fb438552e4e0 [gaim-migrate @ 6053]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
14 the newest, shiniest features -- but it will prevent users from having
fb438552e4e0 [gaim-migrate @ 6053]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
15 to deal with ugly development bugs that we already know about but
fb438552e4e0 [gaim-migrate @ 6053]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
16 haven't gotten around to fixing.
fb438552e4e0 [gaim-migrate @ 6053]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
17
6246
2cb2a49f4bbe [gaim-migrate @ 6740]
Mark Doliner <mark@kingant.net>
parents: 5640
diff changeset
18 If you are interested in hacking on gaim, please read README and
5640
fb438552e4e0 [gaim-migrate @ 6053]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
19 HACKING, and take note of the issues in PROGRAMMING_NOTES. (Note that
fb438552e4e0 [gaim-migrate @ 6053]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
20 they may be somewhat out of date at times.) Win32 developers, please
fb438552e4e0 [gaim-migrate @ 6053]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
21 read README.mingw.
fb438552e4e0 [gaim-migrate @ 6053]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
22
fb438552e4e0 [gaim-migrate @ 6053]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
23 By far the best documentation, however, is the documented code. Not
fb438552e4e0 [gaim-migrate @ 6053]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
24 all parts of gaim have yet been documented, but the major subsystems
fb438552e4e0 [gaim-migrate @ 6053]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
25 are falling fast. If you have doxygen, you can use the Doxyfile in
fb438552e4e0 [gaim-migrate @ 6053]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
26 the toplevel directory to generate pretty documentation. Otherwise
fb438552e4e0 [gaim-migrate @ 6053]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
27 (or even if you do!), the header files for each subsystem contain
fb438552e4e0 [gaim-migrate @ 6053]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
28 documentation for the functions they contain. For instance,
fb438552e4e0 [gaim-migrate @ 6053]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
29 conversation.h contains documentation for the entire
fb438552e4e0 [gaim-migrate @ 6053]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
30 gaim_conversation_* API, and account.h contains documentation for the
fb438552e4e0 [gaim-migrate @ 6053]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
31 gaim_account_* API.
fb438552e4e0 [gaim-migrate @ 6053]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
32
fb438552e4e0 [gaim-migrate @ 6053]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
33 If you have questions, please feel free to contact the gaim developers
fb438552e4e0 [gaim-migrate @ 6053]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
34 by email at gaim-devel@lists.sourceforge.net, on IRC at
fb438552e4e0 [gaim-migrate @ 6053]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
35 irc.freenode.net in #gaim, or via the sourceforge forums at
fb438552e4e0 [gaim-migrate @ 6053]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
36 http://www.sourceforge.net/projects/gaim. Please do as much homework
fb438552e4e0 [gaim-migrate @ 6053]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
37 as you can before contacting us; the more you know about your
fb438552e4e0 [gaim-migrate @ 6053]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
38 question, the faster and more effectively we can help you!
fb438552e4e0 [gaim-migrate @ 6053]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
39
fb438552e4e0 [gaim-migrate @ 6053]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
40 Send patches to gaim-devel@lists.sourceforge.net or post them in the
fb438552e4e0 [gaim-migrate @ 6053]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
41 Sourceforge forums at http://www.sourceforge.net/projects/gaim.