Skriniar Gregor writes:
> Hello,
> 
> first of all thanks for your comment.
> 
> I am sorry that I discussed this problem with Sinisa in private (not via 
>[EMAIL PROTECTED]). So, once more I would like to summarize it:
> My opinion is that there is/(at least) was a bug in your API because:
>       >   *mysql=tmp_mysql; //especialy this is the point. You assign value of 
>tmp_mysql into *mysql. But MYSQL is defined as structure, which contains several 
>pointers and is evident, that after return from this function the pointers are 
>corrupted. I would expect dynamicaly allocated tmp_mysql and assign in this manner 
>obtained pointer to mysql. Something like:
>       > 
>       >   MYSQL *tmp_mysql;
>       >   tmp_mysql = (MYSQL *) my_alloc(...);
>       >   ....
>       >   mysql=tmp_mysql;
> 
> After this email I received new body of the method (mysql_reconnect()) from Sinisa:
>       ...
>         *mysql=tmp_mysql;
>         mysql_fix_pointers(mysql, &tmp_mysql); /* adjust connection pointers */  
>               ...
> this method contains (unlike version known to me) function call 
>mysql_fix_pointers(), which probably handles pointers of MYSQL struct. Am I right? I 
>would like to know the body of this new method to be sure. Also, I would like to 
>know, which version comes this method with? Because I could not find it in 
>http://www.mysql.com/downloads/mysql-3.23.html. Maybe version 4.0.0 and later?
> 
> Regards
> Gregor
> 

Hi!

This is what the above function does :

static void mysql_fix_pointers(MYSQL* mysql, MYSQL* old_mysql)
{
  MYSQL *tmp, *tmp_prev;
  if (mysql->master == old_mysql)
    mysql->master = mysql;
  if (mysql->last_used_con == old_mysql)
    mysql->last_used_con = mysql;
  if (mysql->last_used_slave == old_mysql)
    mysql->last_used_slave = mysql;
  for (tmp_prev = mysql, tmp = mysql->next_slave;
       tmp != old_mysql;tmp = tmp->next_slave)
  {
    tmp_prev = tmp;
  }
  tmp_prev->next_slave = mysql;
}


It was added in 3.23 tree, I think in 3.23.33, but I am not sure.

I am definitely sure that it was not added in 4.0 tree, but in 3.23
tree. 


-- 
Regards,
   __  ___     ___ ____  __
  /  |/  /_ __/ __/ __ \/ /    Mr. Sinisa Milivojevic <[EMAIL PROTECTED]>
 / /|_/ / // /\ \/ /_/ / /__   MySQL AB, Fulltime Developer
/_/  /_/\_, /___/\___\_\___/   Larnaca, Cyprus
       <___/   www.mysql.com


---------------------------------------------------------------------
Before posting, please check:
   http://www.mysql.com/manual.php   (the manual)
   http://lists.mysql.com/           (the list archive)

To request this thread, e-mail <[EMAIL PROTECTED]>
To unsubscribe, e-mail <[EMAIL PROTECTED]>
Trouble unsubscribing? Try: http://lists.mysql.com/php/unsubscribe.php


---------------------------------------------------------------------
Before posting, please check:
   http://www.mysql.com/manual.php   (the manual)
   http://lists.mysql.com/           (the list archive)

To request this thread, e-mail <[EMAIL PROTECTED]>
To unsubscribe, e-mail <[EMAIL PROTECTED]>
Trouble unsubscribing? Try: http://lists.mysql.com/php/unsubscribe.php

Reply via email to