fukamachi / event-emitter

Event mechanism for Common Lisp objects.
BSD 2-Clause "Simplified" License
27 stars 8 forks source link

Fix portability edge-case #8

Open adlai opened 4 years ago

adlai commented 4 years ago

As reported in the Fourth Issue, certain compilers will not return an adjustable vector from #'delete, due to the ANSI specification only requiring that the array element type remain unchanged, while permitting the return value to be a simple vector; this can cause a situation wherein the object's event silo is not extensible, and an error will be signaled upon the next attempt to add a listener.

This commit provides a CONTINUE restart ensuring that the silo is adjustable, along with a minor change to the portions of code that are inlined; the change of inlining should not be noticeable.