Skip to content

Commit d13dd30

Browse files
committed
patch 9.0.1402: crash when using null_class
Problem: Crash when using null_class. Solution: Give an error when trying to use a null class.
1 parent c481ad3 commit d13dd30

File tree

3 files changed

+15
-0
lines changed

3 files changed

+15
-0
lines changed

src/testdir/test_vim9_class.vim

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -203,6 +203,13 @@ def Test_returning_null_object()
203203
v9.CheckScriptSuccess(lines)
204204
enddef
205205

206+
def Test_using_null_class()
207+
var lines =<< trim END
208+
@_ = null_class.member
209+
END
210+
v9.CheckDefExecAndScriptFailure(lines, ['E715:', 'E1363:'])
211+
enddef
212+
206213
def Test_class_interface_wrong_end()
207214
var lines =<< trim END
208215
vim9script

src/version.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -695,6 +695,8 @@ static char *(features[]) =
695695

696696
static int included_patches[] =
697697
{ /* Add new patch number below this line */
698+
/**/
699+
1402,
698700
/**/
699701
1401,
700702
/**/

src/vim9class.c

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1262,6 +1262,12 @@ class_object_index(
12621262
cl = rettv->vval.v_object->obj_class;
12631263
}
12641264

1265+
if (cl == NULL)
1266+
{
1267+
emsg(_(e_incomplete_type));
1268+
return FAIL;
1269+
}
1270+
12651271
if (*name_end == '(')
12661272
{
12671273
int on_class = rettv->v_type == VAR_CLASS;

0 commit comments

Comments
 (0)