| 224 | } |
| 225 | |
| 226 | int dbuf_guard::push_back(dbuf_obj* obj) |
| 227 | { |
| 228 | if (obj->nrefer_ < 1) { |
| 229 | if (obj->guard_ == NULL) { |
| 230 | obj->guard_ = this; |
| 231 | } else if (obj->guard_ != this) { |
| 232 | logger_fatal("obj->guard_(%p) != me(%p), nrefer: %d", |
| 233 | obj->guard_, this, obj->nrefer_); |
| 234 | } |
| 235 | |
| 236 | if (curr_->size >= curr_->capacity) { |
| 237 | extend_objs(); |
| 238 | } |
| 239 | |
| 240 | curr_->objs[curr_->size] = obj; |
| 241 | obj->nrefer_++; |
| 242 | obj->pos_ = (int) size_++; |
| 243 | curr_->size++; |
| 244 | } else if (obj->guard_ != this) { |
| 245 | logger_fatal("obj->guard_(%p) != me(%p), nrefer: %d", |
| 246 | obj->guard_, this, obj->nrefer_); |
| 247 | } |
| 248 | |
| 249 | return obj->pos_; |
| 250 | } |
| 251 | |
| 252 | dbuf_obj* dbuf_guard::operator[](size_t pos) const |
| 253 | { |
no outgoing calls
no test coverage detected