Changeset 4241

Show
Ignore:
Timestamp:
09/06/08 17:17:38 (3 months ago)
Author:
fujii
Message:

Staticpro new variable imagemagick_image_types instead of doing
staticpro on each symbol for image formats supported by ImageMagick?,
avoiding exhaustion of staticvec.

* alloc.c (NSTATICS): Cancel increase for ImageMagick?.

* image.c (imagemagick_image_types): New variable.
(imagemagick_image_type_lisp_symbol): Add an interned symbol to
imagemagick_image_types.
(define_imagemagick_type): Staticpro imagemagick_image_types.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/src/ChangeLog.Meadow

    r4240 r4241  
     12008-09-06  Masayuki FUJII  <boochang@m4.kcn.ne.jp> 
     2 
     3        * alloc.c (NSTATICS): Cancel increase for ImageMagick. 
     4 
     5        * image.c (imagemagick_image_types): New variable. 
     6        (imagemagick_image_type_lisp_symbol): Add an interned symbol to 
     7        imagemagick_image_types. 
     8        (define_imagemagick_type): Staticpro imagemagick_image_types. 
     9 
    1102008-07-22  Shun-ichi GOTO  <gotoh@taiyo.co.jp> 
    211 
  • trunk/src/alloc.c

    r4229 r4241  
    504504   value; otherwise some compilers put it into BSS.  */ 
    505505 
    506 #ifdef MEADOW 
    507 #define NSTATICS 1540 
    508 #else 
    509506#define NSTATICS 1280 
    510 #endif 
    511507Lisp_Object *staticvec[NSTATICS] = {&Vpurify_flag}; 
    512508 
  • trunk/src/image.c

    r4220 r4241  
    92699269 
    92709270extern Lisp_Object Qxbm, Qpbm, Qxpm, Qjpeg, Qtiff, Qgif, Qpng; 
     9271 
     9272/* A list of symbols, one for each image type supported by ImageMagick. */ 
     9273Lisp_Object imagemagick_image_types; 
    92719274 
    92729275static int imagemagick_get_bits_per_pixel (MagickWand *); 
     
    1048610489      struct image_type *type = lookup_image_type (sym); 
    1048710490      if (type) 
    10488         return type->type; 
     10491        { 
     10492          imagemagick_image_types = Fcons (*type->type, 
     10493                                           imagemagick_image_types); 
     10494          return type->type; 
     10495        } 
    1048910496    } 
    1049010497 
     
    1049210499  psym = (Lisp_Object *) xmalloc (sizeof (Lisp_Object)); 
    1049310500  *psym = Fintern (lowerstr, Qnil); 
    10494   staticpro (psym); 
     10501  imagemagick_image_types = Fcons (*psym, imagemagick_image_types); 
    1049510502 
    1049610503  return psym; 
     
    1050910516  img_type.free = mw32_destruct_image; 
    1051010517  img_type.next = NULL; 
     10518 
     10519  imagemagick_image_types = Qnil; 
     10520  staticpro (&imagemagick_image_types); 
    1051110521 
    1051210522  if (formats == NULL)