Hi, instead of duplicating code, wouldn't it be better to use a
boolean parameter to setContactData, to enable or disable the event
thing? This way this parameter would default to TRUE (fire the event),
but when called from loadXMLContact it would be set to false.
Greets.
On 8/6/06, Benjamin <[EMAIL PROTECTED]> wrote:
> Hi !
>
> In the file abook.tcl , the proc setContactData on line 340, what about
> re-create another procedure named « setContactDataFast ». It should be the
> same that « setContactData » but without the condition « # An event used by
> guicontactlist to know when a user changed his nick (or state) ». Then, you
> could change the function that is loading the XML file ( loadXMLContact on
> line 892 ) to use that procedure instead of the « normal » procedure. You
> could save about 5 or 6 micro-seconds when executing aMSN ?
>
> I don't think we need to advise guicontactlist that a user change his nick
> or state during the loading of the xml file.
>
> Here is the new procedure setContactData :
>
> -----------------------------------------------------------------------------------------
> proc setContactDataFast { user_login field data } {
> puts stdout $user_login
> puts stdout $field
> puts stdout $data
> global pgc
> variable users_data
>
> set field [string tolower $field]
>
> # There can't be double arrays, so users_data(user) is just a
> # list like {entry1 data1 entry2 data2 ...}
> if { [info exists users_data($user_login)] } {
> #We convert the list to an array, to make it easier
> array set user_data $users_data($user_login)
> } else {
> array set user_data [list]
> }
>
> if { $data != "" } {
> #post event for amsnplus
> set evPar(data) data
> ::plugins::PostEvent parse_nick evPar
>
> set user_data($field) $data
> }
>
> set users_data($user_login) [array get user_data]
>
> #We make this to notify preferences > groups to be refreshed
> set pgc 1
> }
> -----------------------------------------------------------------------------------------
>
> Here is the new procedure loadXMLContact :
>
> -----------------------------------------------------------------------------------------
> proc loadXMLContact {cstack cdata saved_data cattr saved_attr args } {
> variable users_data
> upvar $saved_data sdata
> upvar $saved_attr sattr
>
> array set attr $cattr
>
> set parentlen [string length $cstack]
> foreach child [array names sattr] {
> if { $child == "_dummy_" } {
> continue
> }
> set fieldname [string range $child [expr {$parentlen+1}] end]
> #Remove this. Only leave it for some days to remove old ::abook
> stored data
>
> # BTW could we remove those lines ?
>
> #if { $fieldname == "field" } {
> # continue
> #}
>
> # Here is the line changed.
> setContactDataFast $attr(name) $fieldname $sdata($child)
> }
>
> return 0
>
> }
> -----------------------------------------------------------------------------------------
> --
> Benjamin
> [EMAIL PROTECTED]
> -------------------------------------------------------------------------
> Take Surveys. Earn Cash. Influence the Future of IT
> Join SourceForge.net's Techsay panel and you'll get the chance to share your
> opinions on IT & business topics through brief surveys -- and earn cash
> http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
>
> _______________________________________________
> Amsn-devel mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/amsn-devel
>
>
>
--
(:===========================================:)
Alvaro J. Iradier Muro - [EMAIL PROTECTED]
-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys -- and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
Amsn-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/amsn-devel