What does this fix? - Julian
On Tue, 2011-09-20 at 16:25 +0300, Daniel Shahaf wrote: > Does this look correct? locks-test and lock_tests.py both pass. > > [[[ > * subversion/libsvn_fs_base/bdb/locks-table.c > (svn_fs_bdb__locks_get): > Set LOOKUP_PATH before constructing BDB's KEY from it. > ]]] > > [[[ > Index: subversion/libsvn_fs_base/bdb/locks-table.c > =================================================================== > --- subversion/libsvn_fs_base/bdb/locks-table.c (revision 1173129) > +++ subversion/libsvn_fs_base/bdb/locks-table.c (working copy) > @@ -206,7 +206,7 @@ svn_fs_bdb__locks_get(svn_fs_t *fs, > const char *lock_token; > svn_lock_t *lock; > svn_error_t *err; > - const char *lookup_path = path; > + const char *lookup_path; > > /* First, try to lookup PATH itself. */ > err = svn_fs_bdb__lock_token_get(&lock_token, fs, path, trail, pool); > @@ -238,6 +238,11 @@ svn_fs_bdb__locks_get(svn_fs_t *fs, > &cursor, 0); > SVN_ERR(BDB_WRAP(fs, "creating cursor for reading lock tokens", db_err)); > > + if (!svn_fspath__is_root(path, strlen(path))) > + lookup_path = apr_pstrcat(pool, path, "/", (char *)NULL); > + else > + lookup_path = path; > + > /* Since the key is going to be returned as well as the value make > sure BDB malloc's the returned key. */ > svn_fs_base__str_to_dbt(&key, lookup_path); > @@ -247,9 +252,6 @@ svn_fs_bdb__locks_get(svn_fs_t *fs, > the one passed in, by passing in the DB_RANGE_SET flag. */ > db_err = svn_bdb_dbc_get(cursor, &key, svn_fs_base__result_dbt(&value), > DB_SET_RANGE); > - > - if (!svn_fspath__is_root(path, strlen(path))) > - lookup_path = apr_pstrcat(pool, path, "/", (char *)NULL); > > /* As long as the prefix of the returned KEY matches LOOKUP_PATH we > know it is either LOOKUP_PATH or a decendant thereof. */ > ]]]