Skip to content

Commit

Permalink
FIX: don't allow making a module! from integer! and map!
Browse files Browse the repository at this point in the history
  • Loading branch information
Oldes committed Dec 9, 2020
1 parent 10932d1 commit c167c29
Show file tree
Hide file tree
Showing 2 changed files with 33 additions and 11 deletions.
26 changes: 15 additions & 11 deletions src/core/t-object.c
Original file line number Diff line number Diff line change
Expand Up @@ -343,20 +343,24 @@ static REBSER *Trim_Object(REBSER *obj)
break; // returns value
}

// make object! 10
if (IS_NUMBER(arg)) {
n = Int32s(arg, 0);
obj = Make_Frame(n);
break; // returns obj
}
// Allow only object! to be made from from map! or number! spec
if (type == REB_OBJECT) {

// make object! map!
if (IS_MAP(arg)) {
obj = Map_To_Object(VAL_SERIES(arg));
break; // returns obj
// make object! 10
if (IS_NUMBER(arg)) {
n = Int32s(arg, 0);
obj = Make_Frame(n);
break; // returns obj
}

// make object! map!
if (IS_MAP(arg)) {
obj = Map_To_Object(VAL_SERIES(arg));
break; // returns obj
}
}

//if (IS_NONE(arg)) {obj = Make_Frame(0); break;}
//if (IS_NONE(arg)) {obj = Make_Frame(0); break;} // removed by design!

Trap_Make(type, arg);
}
Expand Down
18 changes: 18 additions & 0 deletions src/tests/units/module-test.r3
Original file line number Diff line number Diff line change
Expand Up @@ -116,6 +116,24 @@ supplement system/options/module-paths join what-dir %units/files/
error? err: try [module [type: :print][]]
err/id = 'wrong-type
]
--test-- "make module! integer!" ; not allowed
;@@ https://github.com/Oldes/Rebol-issues/issues/1551
--assert all [
error? err: try [make module! 10]
err/id = 'bad-make-arg
]
--test-- "make module! map!" ; not allowed
;@@ https://github.com/Oldes/Rebol-issues/issues/1551
--assert all [
error? err: try [make module! #(a: 1)]
err/id = 'bad-make-arg
]
--test-- "make module! object!" ; not allowed
;@@ https://github.com/Oldes/Rebol-issues/issues/1551
--assert all [
error? err: try [make module! context [a: 1]]
err/id = 'bad-make-arg
]

===end-group===

Expand Down

0 comments on commit c167c29

Please sign in to comment.