Re: [PATCH] git-svn: workaround for a bug in svn serf backend

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



2013/12/30 Thomas Rast <tr@xxxxxxxxxxxxx>:
> Roman Kagan <rkagan@xxxxxxx> writes:
>
>> +     # workaround for a bug in svn serf backend (v1.8.5 and below):
>> +     # store 3d argument to ->add_file() in a local variable, to make it
>> +     # have the same lifetime as $fbat
>> +     my $upa = $self->url_path($m->{file_a});
>>       my $fbat = $self->add_file($self->repo_path($m->{file_b}), $pbat,
>> -                             $self->url_path($m->{file_a}), $self->{r});
>> +                             $upa, $self->{r});
>
> Hmm, now that you put it that way, I wonder if the patch is correct.
>
> Let me first rephrase the problem to verify that I understand the issue:
>
>   $fbat keeps a pointer to the $upa string, without maintaining a
>   reference to it.  When $fbat is destroyed, it needs this string, so we
>   must ensure that the lifetime of $upa is at least as long as that of
>   $fbat.

No.  The string is needed in subversion's close_file(), so we want to
keep it alive until close_file() returns. Surviving till the end of
the current function scope is sufficient for that.

> However, does Perl make any guarantees as to the order in which local
> variables are unreferenced and then destroyed?

We don't care about the order they are destroyed WRT each other.

Roman.
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]