| Type | Bug | Status | tested | Date | 13-Apr-2009 04:10 |
|---|---|---|---|---|---|
| Version | alpha 47 | Category | n/a | Submitted by | BrianH |
| Platform | All | Severity | major | Priority | high |
| Summary | Weird error with PROTECT/hide and MAKE |
|---|---|
| Description |
It looks like MAKE has a bounds-check error with its spec when the first word of the prototype object has been hidden with PROTECT/hide, and the tail of the spec is a call of a bound function with a missing argument. See the example, it's freaky. Noticed by Peta in the blog. |
| Example code |
; Test 1: Field first
>> a: make object! [a: 1 b: func [c] [exit]]
== make object! [
a: 1
b: make function! [[c][exit]]
]
>> make a [set 'd b] d
** Script error: b is missing its c argument
** Where: make
** Near: make a [set 'd b]
; An error is the correct behavior
>> protect/hide in a 'a
== a
>> make a [set 'd b]
== make object! [
b: make function! [[c][exit]]
] ; Should be the same error
>> d
== 1 ; Should be unset
; Test 2: Field last
>> a: make object! [b: func [c] [exit] a: 1]
== make object! [
b: make function! [[c][exit]]
a: 1
]
>> protect in a 'a
== a
>> make a [set 'd b]
** Script error: b is missing its c argument
** Where: make
** Near: make a [set 'd b]
; An error is the correct behavior
; Test 3: External function
>> a: make object! [a: 1] b: func [c] [exit]
== make function! [[c][exit]]
>> protect in a 'a
== a
>> make a [set 'd b]
** Script error: b is missing its c argument
** Where: make
** Near: make a [set 'd b]
; An error is the correct behavior
|
| Assigned to | n/a | Fixed in | alpha 49 | Last Update | 26-Apr-2009 10:15 |
|---|
| Date | User | Field | Action | Change |
|---|---|---|---|---|
| 26-Apr-2009 10:15 | BrianH | Status | Modified | built => tested |
| 25-Apr-2009 14:47 | carl | Fixedin | Modified | => alpha 49 |
| 25-Apr-2009 14:47 | carl | Status | Modified | reviewed => built |
| 13-Apr-2009 04:18 | BrianH | Description | Modified | - |
| 13-Apr-2009 04:18 | BrianH | Code | Modified | - |
| 13-Apr-2009 04:18 | BrianH | Status | Modified | submitted => reviewed |
| 13-Apr-2009 04:10 | BrianH | Ticket | Added | - |