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);
|
shada_free_shada_entry(&entry);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
hms_insert(&wms->hms[entry.data.history_item.histtype], entry, true,
|
if (wms->hms[entry.data.history_item.histtype].hmll.size != 0) {
|
||||||
true);
|
hms_insert(&wms->hms[entry.data.history_item.histtype], entry, true,
|
||||||
|
true);
|
||||||
|
} else {
|
||||||
|
shada_free_shada_entry(&entry);
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case kSDItemRegister: {
|
case kSDItemRegister: {
|
||||||
|
@@ -2,6 +2,7 @@
|
|||||||
local helpers = require('test.functional.helpers')(after_each)
|
local helpers = require('test.functional.helpers')(after_each)
|
||||||
local nvim_command, funcs, meths, nvim_feed, eq =
|
local nvim_command, funcs, meths, nvim_feed, eq =
|
||||||
helpers.command, helpers.funcs, helpers.meths, helpers.feed, helpers.eq
|
helpers.command, helpers.funcs, helpers.meths, helpers.feed, helpers.eq
|
||||||
|
local eval = helpers.eval
|
||||||
|
|
||||||
local shada_helpers = require('test.functional.shada.helpers')
|
local shada_helpers = require('test.functional.shada.helpers')
|
||||||
local reset, clear = shada_helpers.reset, shada_helpers.clear
|
local reset, clear = shada_helpers.reset, shada_helpers.clear
|
||||||
@@ -237,4 +238,13 @@ describe('ShaDa support code', function()
|
|||||||
nvim_command('wshada')
|
nvim_command('wshada')
|
||||||
end)
|
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)
|
end)
|
||||||
|
Reference in New Issue
Block a user