Mercurial > vim
annotate READMEdir/README_ole.txt @ 33393:016d8f863230 v9.0.1955
patch 9.0.1955: Vim9: lockvar issues with objects/classes
Commit: https://github.com/vim/vim/commit/ee865f37acab6cac2cee6a171d60e1b365f852b0
Author: Ernie Rael <errael@raelity.com>
Date: Fri Sep 29 19:53:55 2023 +0200
patch 9.0.1955: Vim9: lockvar issues with objects/classes
Problem: Vim9: lockvar issues with objects/classes
Solution: fix `get_lhs()` object/class access and avoid `SEGV`,
make error messages more accurate.
- `get_lval()` detects/returns object/class access
- `compile_lock_unlock()` generate code for bare static and obj_arg access
- `do_lock_var()` check lval for `ll_object`/`ll_class` and fail if so.
Details:
- Add `ll_object`/`ll_class`/`ll_oi` to `lval_T`.
- Add `lockunlock_T` to `isn_T` for `is_arg` to specify handling of `lval_root` in `get_lval()`.
- In `get_lval()`, fill in `ll_object`/`ll_class`/`ll_oi` as needed; when no `[idx] or .key`, check lval_root on the way out.
- In `do_lock_var()` check for `ll_object`/`ll_class`; also bullet proof ll_dict case
and give `Dictionay required` if problem. (not needed to avoid lockvar crash anymore)
- In `compile_lock_unlock()` compile for the class variable and func arg cases.
closes: #13174
Signed-off-by: Christian Brabandt <cb@256bit.org>
Co-authored-by: Ernie Rael <errael@raelity.com>
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Fri, 29 Sep 2023 20:00:07 +0200 |
parents | 645722244c3f |
children | 4635e43f2c6f |
rev | line source |
---|---|
29314 | 1 README_ole.txt for version 9.0 of Vim: Vi IMproved. |
8623
58e749232bd7
commit https://github.com/vim/vim/commit/818c9e7edfce339eff7cb357f2ec29a72afd1977
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
2 |
30727
645722244c3f
patch 9.0.0698: VisVim is outdated, does not work with current Visual Studio
Bram Moolenaar <Bram@vim.org>
parents:
29314
diff
changeset
|
3 This archive contains gvim.exe with OLE interface. |
8623
58e749232bd7
commit https://github.com/vim/vim/commit/818c9e7edfce339eff7cb357f2ec29a72afd1977
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
4 This version of gvim.exe can also load a number of interface dynamically (you |
58e749232bd7
commit https://github.com/vim/vim/commit/818c9e7edfce339eff7cb357f2ec29a72afd1977
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
5 can optionally install the .dll files for each interface). |
58e749232bd7
commit https://github.com/vim/vim/commit/818c9e7edfce339eff7cb357f2ec29a72afd1977
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
6 It is only for MS-Windows 95/98/ME/NT/2000/XP. |
58e749232bd7
commit https://github.com/vim/vim/commit/818c9e7edfce339eff7cb357f2ec29a72afd1977
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
7 |
58e749232bd7
commit https://github.com/vim/vim/commit/818c9e7edfce339eff7cb357f2ec29a72afd1977
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
8 Also see the README_bindos.txt, README_dos.txt and README.txt files. |
58e749232bd7
commit https://github.com/vim/vim/commit/818c9e7edfce339eff7cb357f2ec29a72afd1977
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
9 |
58e749232bd7
commit https://github.com/vim/vim/commit/818c9e7edfce339eff7cb357f2ec29a72afd1977
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
10 Be careful not to overwrite the OLE gvim.exe with the non-OLE gvim.exe when |
58e749232bd7
commit https://github.com/vim/vim/commit/818c9e7edfce339eff7cb357f2ec29a72afd1977
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
11 unpacking another binary archive! Check the output of ":version": |
58e749232bd7
commit https://github.com/vim/vim/commit/818c9e7edfce339eff7cb357f2ec29a72afd1977
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
12 Win32s - "MS-Windows 16/32 bit GUI version" |
58e749232bd7
commit https://github.com/vim/vim/commit/818c9e7edfce339eff7cb357f2ec29a72afd1977
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
13 Win32 - "MS-Windows 32 bit GUI version" |
58e749232bd7
commit https://github.com/vim/vim/commit/818c9e7edfce339eff7cb357f2ec29a72afd1977
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
14 Win32 with OLE - "MS-Windows 32 bit GUI version with OLE support" |
58e749232bd7
commit https://github.com/vim/vim/commit/818c9e7edfce339eff7cb357f2ec29a72afd1977
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
15 |
58e749232bd7
commit https://github.com/vim/vim/commit/818c9e7edfce339eff7cb357f2ec29a72afd1977
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
16 For further information, type this inside Vim: |
58e749232bd7
commit https://github.com/vim/vim/commit/818c9e7edfce339eff7cb357f2ec29a72afd1977
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
17 :help if_ole |