refs = 0;
}
/// point to new object.
- void up(T *t, int *r) {
+ void up (T *t, int *r) {
if (!r) {
refs = new int;
*refs = 1;
}
/// POST: *refs == 1
void copy() {
- if(*refs != 1){
- T * newobj = new T(*obj );
+ if (*refs != 1){
+ T * newobj = new T(*obj);
down();
- up(newobj);
+ up (newobj);
}
}
- Handle(Handle const &src) {
- up(src.obj, src.refs);
+ Handle (Handle const &src) {
+ up (src.obj, src.refs);
}
- Handle(T & o) {
+ Handle (T & o) {
up (&o);
}
void operator=(Handle const& src) {
if (this == &src)
return;
down();
- up(src.o, src.refs);
+ up (src.o, src.refs);
}
operator T const &() {
return *obj;