home *** CD-ROM | disk | FTP | other *** search
/ DOS/V Power Report 1997 March / VPR9703A.ISO / VPR_DATA / DOGA / SOURCES / POLYEDIT.LZH / ML / INIT.C < prev    next >
C/C++ Source or Header  |  1994-07-24  |  1KB  |  73 lines

  1. /*
  2.  *        初期化処理
  3.  *
  4.  *        1994.5.27        Copyright T.Kobayashi
  5.  */
  6.  
  7. #include <stdio.h>
  8. #include <stdlib.h>
  9. #include <string.h>
  10. #include <assert.h>
  11.  
  12. #include "data.h"
  13. #include "alloc.h"
  14.  
  15. #include "inlib.h"
  16. #include "err.h"
  17.  
  18. /*    演算用スタック    */
  19. extern    int            MaxStack ;
  20. extern    DataStruct    *StackBuf ;
  21. extern    int            StackPtr ;
  22. extern    int            StackUsed ;
  23.  
  24. extern    void    (*ErrorExec)() ;
  25.  
  26. /*    スタックの初期化    */
  27. void    StackInit( size )
  28. int        size ;
  29. {
  30.     StackBuf = (DataStruct*)MemoryAlloc( sizeof( DataStruct ) * size );
  31.  
  32.     if ( StackBuf == NULL )
  33.     {
  34.         ExecError( "スタック用バッファが確保できません。!!" );
  35.     }
  36.     StackUsed = 0 ;
  37.     MaxStack = size ;
  38.     StackPtr = -1 ;
  39. }
  40.  
  41. /*    スタックの解放    */
  42. void    StackExit()
  43. {
  44.     StackRelease( StackBuf - 1 );
  45.     if ( StackBuf != NULL )
  46.         MemoryFree( StackBuf );
  47. }
  48.  
  49. /*    初期化    */
  50. void    ObjectInit()
  51. {
  52.     int        i ;
  53.  
  54.     ObjectCount = 0 ;
  55.     for( i = 0 ; i < MAX_CLASS ; i++ )
  56.     {
  57.         ClassList[i].name = NULL ;
  58.         ClassList[i].func = NULL ;
  59.     }
  60. }
  61.  
  62. /*    終了処理    */
  63. void    ObjectExit()
  64. {
  65.     int        i ;
  66.     for( i = 0 ; i < MAX_CLASS ; i++ )
  67.     {
  68.         if ( ClassList[i].func != NULL )
  69.             FunctionFree( ClassList[i].func );
  70.     }
  71. }
  72.  
  73.