Merge pull request #6296 from FriedSock/use_handle_get_buffer_refactor

Use handle_get_buffer for buflist_findnr
This commit is contained in:
Björn Linse 2017-03-17 09:18:51 +01:00 committed by GitHub
commit ad1884be0d

View File

@ -313,27 +313,6 @@ bool buf_valid(buf_T *buf)
return false; return false;
} }
// Map used to quickly lookup a buffer by its number.
static PMap(handle_T) *buf_map = NULL;
static void buf_hashtab_add(buf_T *buf)
FUNC_ATTR_NONNULL_ALL
{
if (pmap_has(handle_T)(buf_map, buf->handle)) {
EMSG(_("E931: Buffer cannot be registered"));
} else {
pmap_put(handle_T)(buf_map, buf->handle, buf);
}
}
static void buf_hashtab_remove(buf_T *buf)
FUNC_ATTR_NONNULL_ALL
{
if (pmap_has(handle_T)(buf_map, buf->handle)) {
pmap_del(handle_T)(buf_map, buf->handle);
}
}
/// Close the link to a buffer. /// Close the link to a buffer.
/// ///
/// @param win If not NULL, set b_last_cursor. /// @param win If not NULL, set b_last_cursor.
@ -649,7 +628,6 @@ static void free_buffer(buf_T *buf)
free_buffer_stuff(buf, true); free_buffer_stuff(buf, true);
unref_var_dict(buf->b_vars); unref_var_dict(buf->b_vars);
aubuflocal_remove(buf); aubuflocal_remove(buf);
buf_hashtab_remove(buf);
dict_unref(buf->additional_data); dict_unref(buf->additional_data);
clear_fmark(&buf->b_last_cursor); clear_fmark(&buf->b_last_cursor);
clear_fmark(&buf->b_last_insert); clear_fmark(&buf->b_last_insert);
@ -1490,9 +1468,6 @@ buf_T * buflist_new(char_u *ffname, char_u *sfname, linenr_T lnum, int flags)
{ {
buf_T *buf; buf_T *buf;
if (top_file_num == 1) {
buf_map = pmap_new(handle_T)();
}
fname_expand(curbuf, &ffname, &sfname); // will allocate ffname fname_expand(curbuf, &ffname, &sfname); // will allocate ffname
/* /*
@ -1622,7 +1597,6 @@ buf_T * buflist_new(char_u *ffname, char_u *sfname, linenr_T lnum, int flags)
} }
top_file_num = 1; top_file_num = 1;
} }
buf_hashtab_add(buf);
/* /*
* Always copy the options from the current buffer. * Always copy the options from the current buffer.
@ -2143,10 +2117,7 @@ buf_T *buflist_findnr(int nr)
nr = curwin->w_alt_fnum; nr = curwin->w_alt_fnum;
} }
if (pmap_has(handle_T)(buf_map, (handle_T)nr)) { return handle_get_buffer((handle_T)nr);
return pmap_get(handle_T)(buf_map, (handle_T)nr);
}
return NULL;
} }
/* /*