set.c 811 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. #include "__virtualmath.h"
  2. void resetGC(GCStatus *gcs){
  3. gcs->continue_ = false;
  4. gcs->link = 0;
  5. }
  6. void setGC(GCStatus *gcs){
  7. resetGC(gcs);
  8. gcs->tmp_link = 0;
  9. gcs->statement_link = 0;
  10. }
  11. void gcAddTmp(GCStatus *gcs){
  12. gcs->tmp_link ++;
  13. gcs->continue_ = false;
  14. }
  15. void gcAddLink(GCStatus *gcs){
  16. gcs->link ++;
  17. }
  18. void gcAddStatementLink(GCStatus *gcs){
  19. gcs->statement_link ++;
  20. }
  21. void gcFreeStatementLink(GCStatus *gcs){
  22. gcs->statement_link --;
  23. }
  24. void gcFreeTmpLink(GCStatus *gcs){
  25. gcs->tmp_link --;
  26. }
  27. bool setIterAlready(GCStatus *gcs){
  28. bool return_ = gcs->continue_;
  29. gcs->continue_ = true;
  30. return return_;
  31. }
  32. bool needFree(GCStatus *gcs){
  33. if (gcs->statement_link == 0 && gcs->tmp_link == 0 && gcs->link == 0)
  34. return true;
  35. return false;
  36. }