📄 atalloc.c
字号:
/* *//* * Copyright (c) 1989, 1990 by the University of Washington *//* * *//* * For copying and distribution information, please see the file *//* * <copyright.h>. */#include "pmachine.h"#include "pfs.h"static PATTRIB lfree = NULL;int pattrib_count = 0;int pattrib_max = 0;/* * atalloc - allocate and initialize vlink structure * * ATALLOC returns a pointer to an initialized structure of type * PATTRIB. If it is unable to allocate such a structure, it * returns NULL. */PATTRIBatalloc() { PATTRIB at; if(lfree) { at = lfree; lfree = lfree->next; } else { at = (PATTRIB) malloc(sizeof(PATTRIB_ST)); if (!at) return(NULL); pattrib_max++; } pattrib_count++; ZERO(at); /* Initialize and fill in default values; all items are 0 [or NULL] save precedence */ at->precedence = ATR_PREC_OBJECT; return(at); }/* * atfree - free a PATTRIB structure * * ATFREE takes a pointer to a PATTRRIB structure and adds it to * the free list for later reuse. */voidatfree(at) PATTRIB at; { if(at->aname) stfree(at->aname); if((strcmp(at->avtype,"ASCII") == 0) && at->value.ascii) stfree(at->value.ascii); if((strcmp(at->avtype,"LINK") == 0) && at->value.link) vlfree(at->value.link); if(at->avtype) stfree(at->avtype); at->next = lfree; at->previous = NULL; lfree = at; pattrib_count--; }/* * atlfree - free a PATTRIB structure * * ATLFREE takes a pointer to a PATTRIB structure frees it and any linked * PATTRIB structures. It is used to free an entrie list of PATTRIB * structures. */voidatlfree(at) PATTRIB at; { PATTRIB nxt; while(at != NULL) { nxt = at->next; atfree(at); at = nxt; } }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -