mirror of
https://github.com/neovim/neovim.git
synced 2025-10-06 01:46:29 +00:00
shada: fix failed assertion on exit (#12692)
If set the number of history saves is 0, assertions fail when inserting an entry on exit. Dont insert an entry when the number of saves is 0 fixes the issue. fixes #11497
This commit is contained in:
@@ -2207,8 +2207,12 @@ static inline ShaDaWriteResult shada_read_when_writing(
|
||||
shada_free_shada_entry(&entry);
|
||||
break;
|
||||
}
|
||||
hms_insert(&wms->hms[entry.data.history_item.histtype], entry, true,
|
||||
true);
|
||||
if (wms->hms[entry.data.history_item.histtype].hmll.size != 0) {
|
||||
hms_insert(&wms->hms[entry.data.history_item.histtype], entry, true,
|
||||
true);
|
||||
} else {
|
||||
shada_free_shada_entry(&entry);
|
||||
}
|
||||
break;
|
||||
}
|
||||
case kSDItemRegister: {
|
||||
|
@@ -2,6 +2,7 @@
|
||||
local helpers = require('test.functional.helpers')(after_each)
|
||||
local nvim_command, funcs, meths, nvim_feed, eq =
|
||||
helpers.command, helpers.funcs, helpers.meths, helpers.feed, helpers.eq
|
||||
local eval = helpers.eval
|
||||
|
||||
local shada_helpers = require('test.functional.shada.helpers')
|
||||
local reset, clear = shada_helpers.reset, shada_helpers.clear
|
||||
@@ -237,4 +238,13 @@ describe('ShaDa support code', function()
|
||||
nvim_command('wshada')
|
||||
end)
|
||||
|
||||
it('does not crash when number of history save to zero (#11497)', function()
|
||||
nvim_command('set shada=\'10')
|
||||
nvim_feed(':" Test\n')
|
||||
nvim_command('wshada')
|
||||
nvim_command('set shada=\'10,:0')
|
||||
nvim_command('wshada')
|
||||
eq(2, eval('1+1')) -- check nvim still running
|
||||
end)
|
||||
|
||||
end)
|
||||
|
Reference in New Issue
Block a user