Branch: Tag:

2003-01-16

2003-01-16 14:06:18 by Martin Stjernholm <mast@lysator.liu.se>

Fixed some cases where trampolines could generate garbage in 7.2, most
importantly in the image cache.

Rev: server/base_server/roxen.pike:1.804

6:   // Per Hedbor, Henrik Grubbström, Pontus Hagland, David Hedbor and others.   // ABS and suicide systems contributed freely by Francesco Chemolli    - constant cvs_version="$Id: roxen.pike,v 1.803 2002/12/04 15:34:44 wellhard Exp $"; + constant cvs_version="$Id: roxen.pike,v 1.804 2003/01/16 14:06:18 mast Exp $";      // The argument cache. Used by the image cache.   ArgCache argcache;
960: Inside #if defined(THREADS)
   // stop_handler_threads is running; ignore more work.    return;    -  void enqueue() +  function enqueue = lambda()    {    bg_queue->write (({func, args}));    if (bg_queue->size() == 1)
972: Inside #if defined(THREADS)
   else    enqueue();    +  enqueue = 0; // To avoid garbage. +    #else    // Can't do much better when we haven't got threads..    call_out (func, delay, @args);
2342:    y1 = (int)(args["y-size"]||args["height"]);       array xguides, yguides; -  void sort_guides() +  function sort_guides = lambda()    {    xguides = ({}); yguides = ({});    if( guides )
2409:    y1 -= y0;    }    } +  sort_guides = 0; // To avoid garbage.      #define SCALEI 1   #define SCALEF 2   #define SCALEA 4   #define CROP 8    -  void do_scale_and_crop( int x0, int y0, +  function do_scale_and_crop = lambda ( int x0, int y0,    int x1, int y1,    int|float w, int|float h,    int type )
2522:    }    else    do_scale_and_crop( x0, y0, x1, y1, 0, 0, CROP ); +  do_scale_and_crop = 0; // To avoid garbage.       if( args["span-width"] || args["span-height"] )    {
3030:    //! will be called like <pi>callback( @@data, id )</pi>.    {    string ci, user; -  void update_args( mapping a ) +  function update_args = lambda ( mapping a )    {    if (!a->format)    // Make implicit format choice explicit
3059:    ci = map( map( data, tomapp ), argcache->store )*"$";    } else    ci = data; +  update_args = 0; // To avoid garbage.       if( zero_type( uid_cache[ ci ] ) )    {