Skip to content

Commit 453e70b

Browse files
committed
COMMON: revert 6d array support
1 parent 8cf7be7 commit 453e70b

File tree

2 files changed

+12
-7
lines changed

2 files changed

+12
-7
lines changed

samples/distro-examples/tests/array.bas

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -294,3 +294,10 @@ camera = {
294294
if (camera.x != 512) then throw "invalid x"
295295
if (camera.height != 78) then throw "invalid height"
296296
if (camera.distance != 800) then throw "invalid distance"
297+
298+
rem - 6d array
299+
dim a6d(0 to 5, 0 to 5, 0 to 5, 0 to 5, 0 to 5, 4 to 5)
300+
a6d(0,1,2,3,4,5)=99
301+
if (a6d(0,1,2,3,4,5) <> 99) then
302+
throw "a6d error 1"
303+
endif

src/common/blib_func.c

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1857,8 +1857,7 @@ void cmd_intN(long funcCode, var_t *r) {
18571857
//
18581858
if (code_peek() == kwTYPE_VAR) {
18591859
var_p = code_getvarptr();
1860-
if (var_p->type == V_ARRAY) {
1861-
1860+
if (!prog_error && var_p->type == V_ARRAY) {
18621861
l = 1;
18631862
if (code_peek() == kwTYPE_SEP) {
18641863
par_getcomma();
@@ -1892,9 +1891,8 @@ void cmd_intN(long funcCode, var_t *r) {
18921891
// int <- UBOUND(array [, dim])
18931892
//
18941893
if (code_peek() == kwTYPE_VAR) {
1895-
code_skipnext();
1896-
var_p = tvar[code_getaddr()];
1897-
if (var_p->type == V_ARRAY) {
1894+
var_p = code_getvarptr();
1895+
if (!prog_error && var_p->type == V_ARRAY) {
18981896
l = 1;
18991897
if (code_peek() == kwTYPE_SEP) {
19001898
par_getcomma();
@@ -2556,7 +2554,7 @@ void cmd_genfunc(long funcCode, var_t *r) {
25562554
ofs = prog_ip;
25572555
if (code_isvar()) {
25582556
var_t *basevar_p = code_getvarptr();
2559-
if (basevar_p->type == V_ARRAY) {
2557+
if (!prog_error && basevar_p->type == V_ARRAY) {
25602558
count = v_asize(basevar_p);
25612559
for (int i = 0; i < count; i++) {
25622560
var_t *elem_p = v_getelemptr(basevar_p, i);
@@ -2626,7 +2624,7 @@ void cmd_genfunc(long funcCode, var_t *r) {
26262624
ofs = prog_ip;
26272625
if (code_isvar()) {
26282626
var_t *basevar_p = code_getvarptr();
2629-
if (basevar_p->type == V_ARRAY) {
2627+
if (!prog_error && basevar_p->type == V_ARRAY) {
26302628
count = v_asize(basevar_p);
26312629
for (int i = 0; i < count; i++) {
26322630
var_t *elem_p = v_getelemptr(basevar_p, i);

0 commit comments

Comments
 (0)