Mercurial > freewnn
comparison Wnn/jserver/mknode1.c @ 25:466fe6732d8d
- fixed more NULL pointer related errata
- suppress warnings
author | Yoshiki Yazawa <yaz@honeyplanet.jp> |
---|---|
date | Sat, 06 Mar 2010 04:37:31 +0900 |
parents | bbc77ca4def5 |
children |
comparison
equal
deleted
inserted
replaced
24:becc60787557 | 25:466fe6732d8d |
---|---|
83 | 83 |
84 void | 84 void |
85 free_area (list) | 85 free_area (list) |
86 register struct free_list *list; | 86 register struct free_list *list; |
87 { | 87 { |
88 if (list == 0) | 88 if (list == NULL) |
89 return; | 89 return; |
90 free_area (list->lnk); | 90 free_area (list->lnk); |
91 free (list); | 91 free (list); |
92 } | 92 } |
93 | 93 |
101 | 101 |
102 free_sbn_top = wk_ptr = (struct SYO_BNSETSU *) ((char *) list + sizeof (struct free_list)); | 102 free_sbn_top = wk_ptr = (struct SYO_BNSETSU *) ((char *) list + sizeof (struct free_list)); |
103 | 103 |
104 for (n = list->num - 1; n > 0; wk_ptr++, n--) | 104 for (n = list->num - 1; n > 0; wk_ptr++, n--) |
105 wk_ptr->lnk_br = wk_ptr + 1; | 105 wk_ptr->lnk_br = wk_ptr + 1; |
106 wk_ptr->lnk_br = 0; | 106 wk_ptr->lnk_br = NULL; |
107 } | 107 } |
108 | 108 |
109 | 109 |
110 /*******************************************************/ | 110 /*******************************************************/ |
111 /* struct SYO_BNSETSU & ICHBNP & KANGO free エリア作成 */ | 111 /* struct SYO_BNSETSU & ICHBNP & KANGO free エリア作成 */ |
112 /*******************************************************/ | 112 /*******************************************************/ |
113 void | 113 void |
114 freesbn (sbn) /* struct SYO_BNSETSU を free_area へリンク */ | 114 freesbn (sbn) /* struct SYO_BNSETSU を free_area へリンク */ |
115 register struct SYO_BNSETSU *sbn; /* クリアするノードのポインタ */ | 115 register struct SYO_BNSETSU *sbn; /* クリアするノードのポインタ */ |
116 { | 116 { |
117 if (sbn == 0) | 117 if (sbn == NULL) |
118 return; | 118 return; |
119 sbn->reference--; | 119 sbn->reference--; |
120 if (sbn->reference <= 0) | 120 if (sbn->reference <= 0) |
121 { | 121 { |
122 sbn->lnk_br = free_sbn_top; | 122 sbn->lnk_br = free_sbn_top; |
126 | 126 |
127 void | 127 void |
128 clr_sbn_node (sbn) | 128 clr_sbn_node (sbn) |
129 register struct SYO_BNSETSU *sbn; | 129 register struct SYO_BNSETSU *sbn; |
130 { | 130 { |
131 if (sbn == 0) | 131 if (sbn == NULL) |
132 return; | 132 return; |
133 if ((sbn->reference) <= 1) | 133 if ((sbn->reference) <= 1) |
134 { | 134 { |
135 freesbn (sbn); | 135 freesbn (sbn); |
136 clr_sbn_node (sbn->parent); | 136 clr_sbn_node (sbn->parent); |
147 struct SYO_BNSETSU * | 147 struct SYO_BNSETSU * |
148 getsbnsp () | 148 getsbnsp () |
149 { | 149 { |
150 register struct SYO_BNSETSU *rtnptr; | 150 register struct SYO_BNSETSU *rtnptr; |
151 | 151 |
152 if (free_sbn_top == 0) | 152 if (free_sbn_top == NULL) |
153 { | 153 { |
154 if (get_area (SBN_KOSUU, sizeof (struct SYO_BNSETSU), &free_list_sbn) < 0) | 154 if (get_area (SBN_KOSUU, sizeof (struct SYO_BNSETSU), &free_list_sbn) < 0) |
155 return ((struct SYO_BNSETSU *) -1); | 155 return ((struct SYO_BNSETSU *) -1); |
156 lnk_sbn (free_list_sbn); | 156 lnk_sbn (free_list_sbn); |
157 } | 157 } |
158 | 158 |
159 rtnptr = free_sbn_top; | 159 rtnptr = free_sbn_top; |
160 free_sbn_top = free_sbn_top->lnk_br; | 160 free_sbn_top = free_sbn_top->lnk_br; |
161 rtnptr->lnk_br = 0; | 161 rtnptr->lnk_br = NULL; |
162 rtnptr->parent = 0; | 162 rtnptr->parent = NULL; |
163 rtnptr->son_v = 0; | 163 rtnptr->son_v = 0; |
164 rtnptr->reference = 0; | 164 rtnptr->reference = 0; |
165 rtnptr->jentptr = 0; | 165 rtnptr->jentptr = NULL; |
166 rtnptr->status = 0; | 166 rtnptr->status = 0; |
167 rtnptr->status_bkwd = 0; | 167 rtnptr->status_bkwd = 0; |
168 return (rtnptr); | 168 return (rtnptr); |
169 } | 169 } |