[BACK]Return to sm.c CVS log [TXT][DIR] Up to [local] / OpenXM / src / oxc

Diff for /OpenXM/src/oxc/sm.c between version 1.2 and 1.3

version 1.2, 2000/10/13 08:05:49 version 1.3, 2000/11/28 18:11:42
Line 1 
Line 1 
 /* -*- mode: C -*- */  /* -*- mode: C -*- */
 /* $OpenXM: OpenXM/src/oxc/sm.c,v 1.1 2000/10/13 06:05:12 ohara Exp $ */  /* $OpenXM: OpenXM/src/oxc/sm.c,v 1.2 2000/10/13 08:05:49 ohara Exp $ */
   
 #include <stdio.h>  #include <stdio.h>
 #include <stdlib.h>  #include <stdlib.h>
Line 13 
Line 13 
   
 static cmo **stack = NULL;  static cmo **stack = NULL;
 static int stack_ptr = 0;  static int stack_ptr = 0;
 static int sizeof_stack = 0;  static int stack_size = 0;
 #define DIFFERENCE_OF_STACK  1024  #define DIFFERENCE_OF_STACK  1024
   
 void extend_stack()  void stack_extend()
 {  {
     int newsize = sizeof_stack + DIFFERENCE_OF_STACK;      int newsize = stack_size + DIFFERENCE_OF_STACK;
     cmo **newstack = (cmo **)malloc(sizeof(cmo *)*newsize);      cmo **newstack = (cmo **)malloc(sizeof(cmo *)*newsize);
     if (stack != NULL) {      if (stack != NULL) {
         memcpy(newstack, stack, sizeof(cmo *)*sizeof_stack);          memcpy(newstack, stack, sizeof(cmo *)*stack_size);
         free(stack);          free(stack);
     }      }
     sizeof_stack = newsize;      stack_size = newsize;
     stack = newstack;      stack = newstack;
 }  }
   
 void push(cmo *ob)  void push(cmo *ob)
 {  {
     if (stack_ptr >= sizeof_stack) {      if (stack_ptr >= stack_size) {
         extend_stack();          stack_extend();
     }      }
     stack[stack_ptr] = ob;      stack[stack_ptr] = ob;
     stack_ptr++;      stack_ptr++;
Line 130  int oxf_error(OXFILE *oxfp)
Line 130  int oxf_error(OXFILE *oxfp)
   
 int sm(OXFILE *oxfp)  int sm(OXFILE *oxfp)
 {  {
     extend_stack();      stack_extend();
     while (receive_ox(oxfp)) {      while (receive_ox(oxfp)) {
     }      }
     fprintf(stderr, "oxc: socket(%d) is closed.\n", oxfp->fd);      fprintf(stderr, "oxc: socket(%d) is closed.\n", oxfp->fd);

Legend:
Removed from v.1.2  
changed lines
  Added in v.1.3

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>