Mercurial > hg > xemacs-beta
comparison src/specifier.c @ 5117:3742ea8250b5 ben-lisp-object ben-lisp-object-final-ws-year-2005
Checking in final CVS version of workspace 'ben-lisp-object'
author | Ben Wing <ben@xemacs.org> |
---|---|
date | Sat, 26 Dec 2009 00:20:27 -0600 |
parents | 1e7cc382eb16 |
children | e0db3c197671 |
comparison
equal
deleted
inserted
replaced
5116:e56f73345619 | 5117:3742ea8250b5 |
---|---|
419 | 419 |
420 const struct sized_memory_description specifier_empty_extra_description = { | 420 const struct sized_memory_description specifier_empty_extra_description = { |
421 0, specifier_empty_extra_description_1 | 421 0, specifier_empty_extra_description_1 |
422 }; | 422 }; |
423 | 423 |
424 DEFINE_LRECORD_SEQUENCE_IMPLEMENTATION ("specifier", specifier, | 424 DEFINE_SIZABLE_LISP_OBJECT ("specifier", specifier, |
425 1, /*dumpable-flag*/ | 425 mark_specifier, print_specifier, |
426 mark_specifier, print_specifier, | 426 finalize_specifier, |
427 finalize_specifier, | 427 specifier_equal, specifier_hash, |
428 specifier_equal, specifier_hash, | 428 specifier_description, |
429 specifier_description, | 429 sizeof_specifier, |
430 sizeof_specifier, | 430 Lisp_Specifier); |
431 Lisp_Specifier); | |
432 | 431 |
433 /************************************************************************/ | 432 /************************************************************************/ |
434 /* Creating specifiers */ | 433 /* Creating specifiers */ |
435 /************************************************************************/ | 434 /************************************************************************/ |
436 | 435 |
489 | 488 |
490 static Lisp_Object | 489 static Lisp_Object |
491 make_specifier_internal (struct specifier_methods *spec_meths, | 490 make_specifier_internal (struct specifier_methods *spec_meths, |
492 Bytecount data_size, int call_create_meth) | 491 Bytecount data_size, int call_create_meth) |
493 { | 492 { |
494 Lisp_Object specifier; | 493 Lisp_Object specifier = |
495 Lisp_Specifier *sp = (Lisp_Specifier *) | 494 ALLOC_SIZED_LISP_OBJECT (aligned_sizeof_specifier (data_size), specifier); |
496 BASIC_ALLOC_LCRECORD (aligned_sizeof_specifier (data_size), | 495 Lisp_Specifier *sp = XSPECIFIER (specifier); |
497 &lrecord_specifier); | |
498 | 496 |
499 sp->methods = spec_meths; | 497 sp->methods = spec_meths; |
500 sp->global_specs = Qnil; | 498 sp->global_specs = Qnil; |
501 sp->device_specs = Qnil; | 499 sp->device_specs = Qnil; |
502 sp->frame_specs = Qnil; | 500 sp->frame_specs = Qnil; |
505 sp->fallback = Qnil; | 503 sp->fallback = Qnil; |
506 sp->magic_parent = Qnil; | 504 sp->magic_parent = Qnil; |
507 sp->caching = 0; | 505 sp->caching = 0; |
508 sp->next_specifier = Vall_specifiers; | 506 sp->next_specifier = Vall_specifiers; |
509 | 507 |
510 specifier = wrap_specifier (sp); | |
511 Vall_specifiers = specifier; | 508 Vall_specifiers = specifier; |
512 | 509 |
513 if (call_create_meth) | 510 if (call_create_meth) |
514 { | 511 { |
515 struct gcpro gcpro1; | 512 struct gcpro gcpro1; |
3346 /************************************************************************/ | 3343 /************************************************************************/ |
3347 | 3344 |
3348 void | 3345 void |
3349 syms_of_specifier (void) | 3346 syms_of_specifier (void) |
3350 { | 3347 { |
3351 INIT_LRECORD_IMPLEMENTATION (specifier); | 3348 INIT_LISP_OBJECT (specifier); |
3352 | 3349 |
3353 DEFSYMBOL (Qspecifierp); | 3350 DEFSYMBOL (Qspecifierp); |
3354 | 3351 |
3355 DEFSYMBOL (Qconsole_type); | 3352 DEFSYMBOL (Qconsole_type); |
3356 DEFSYMBOL (Qdevice_class); | 3353 DEFSYMBOL (Qdevice_class); |