| 223 | |
| 224 | protected: |
| 225 | T* assign(T* const p) |
| 226 | { |
| 227 | if (ptr != p) |
| 228 | { |
| 229 | if (p) |
| 230 | { |
| 231 | p->addRef(); |
| 232 | } |
| 233 | |
| 234 | T* tmp = ptr; |
| 235 | ptr = p; |
| 236 | |
| 237 | if (tmp) |
| 238 | { |
| 239 | tmp->release(); |
| 240 | } |
| 241 | } |
| 242 | |
| 243 | return p; |
| 244 | } |
| 245 | |
| 246 | private: |
| 247 | T* ptr; |