diff options
Diffstat (limited to 'ramap.c')
| -rw-r--r-- | ramap.c | 33 | 
1 files changed, 21 insertions, 12 deletions
@@ -538,6 +538,9 @@ SCM sc2array(s, ra, prot)    switch TYP7(ARRAY_V(res)) {    case tc7_vector:      break; +  case tc7_bvect: +    if (BOOL_T==s || BOOL_F==s) break; +    goto mismatch;    case tc7_string:      if ICHRP(s) break;      goto mismatch; @@ -1375,11 +1378,14 @@ SCM array_map(ra0, proc, lra)  	  ramapc(ramap_a, proc, ra0, lra, s_array_map);      }      return UNSPECIFIED; -#ifdef CCLO -  case tc7_cclo: -    lra = cons(sc2array(proc,ra0,EOL), lra); -    proc = CCLO_SUBR(proc); -    goto tail; +#if 1 /* def CCLO */ +  case tc7_specfun: +    if (tc16_cclo==TYP16(proc)) { +      lra = cons(sc2array(proc,ra0,EOL), lra); +      proc = CCLO_SUBR(proc); +      goto tail; +    } +    goto gencase;  #endif    }  } @@ -1425,15 +1431,18 @@ SCM array_for_each(proc, ra0, lra)    ASSERT(BOOL_T==procedurep(proc), proc, ARG1, s_array_for_each);   tail:    switch TYP7(proc) { -  default: +  default: gencase:      ramapc(rafe, proc, ra0, lra, s_array_for_each);      return UNSPECIFIED; -#ifdef CCLO -  case tc7_cclo: -    lra = cons(ra0, lra); -    ra0 = sc2array(proc, ra0, EOL); -    proc = CCLO_SUBR(proc); -    goto tail; +#if 1 /* def CCLO */ +  case tc7_specfun: +    if (tc16_cclo==TYP16(proc)) { +      lra = cons(ra0, lra); +      ra0 = sc2array(proc, ra0, EOL); +      proc = CCLO_SUBR(proc); +      goto tail; +    } +    goto gencase;  #endif    }  }  | 
