466 |
|
|
467 |
|
|
468 |
SCM_KEYWORD (k_class, "class"); |
SCM_KEYWORD (k_class, "class"); |
469 |
|
SCM_KEYWORD (k_allocation, "allocation"); |
470 |
|
SCM_KEYWORD (k_instance, "instance"); |
471 |
|
|
472 |
SCM_DEFINE (scm_sys_prep_layout_x, "%prep-layout!", 1, 0, 0, |
SCM_DEFINE (scm_sys_prep_layout_x, "%prep-layout!", 1, 0, 0, |
473 |
(SCM class), |
(SCM class), |
494 |
for (i = 0; i < n; i += 2) |
for (i = 0; i < n; i += 2) |
495 |
{ |
{ |
496 |
long len; |
long len; |
497 |
SCM type; |
SCM type, allocation; |
498 |
char p, a; |
char p, a; |
499 |
|
|
500 |
if (!SCM_CONSP (slots)) |
if (!SCM_CONSP (slots)) |
501 |
SCM_MISC_ERROR ("too few slot definitions", SCM_EOL); |
SCM_MISC_ERROR ("too few slot definitions", SCM_EOL); |
502 |
len = scm_ilength (SCM_CDAR (slots)); |
len = scm_ilength (SCM_CDAR (slots)); |
503 |
type = scm_i_get_keyword (k_class, SCM_CDAR (slots), len, SCM_BOOL_F, |
allocation = scm_i_get_keyword (k_allocation, SCM_CDAR (slots), |
504 |
FUNC_NAME); |
len, k_instance, FUNC_NAME); |
505 |
|
while (!SCM_EQ_P (allocation, k_instance)) |
506 |
|
{ |
507 |
|
slots = SCM_CDR (slots); |
508 |
|
len = scm_ilength (SCM_CDAR (slots)); |
509 |
|
allocation = scm_i_get_keyword (k_allocation, SCM_CDAR (slots), |
510 |
|
len, k_instance, FUNC_NAME); |
511 |
|
} |
512 |
|
type = scm_i_get_keyword (k_class, SCM_CDAR (slots), |
513 |
|
len, SCM_BOOL_F, FUNC_NAME); |
514 |
if (SCM_FALSEP (type)) |
if (SCM_FALSEP (type)) |
515 |
{ |
{ |
516 |
p = 'p'; |
p = 'p'; |