view anagram/support/agref.cpp @ 22:5581ef01f993

Regen all the AG output. This also fixes the line number output in the tools (cgbigen/helpgen/help2html), apparently because those files weren't regenerated last go.
author David A. Holland
date Mon, 13 Jun 2022 00:06:39 -0400
parents 13d2b8934445
children
line wrap: on
line source

/**********************************************************

The AnaGram Class Library

The AgReference Class
Copyright 1997 Parsifal Software. All Rights Reserved.
See the file COPYING for license and usage terms.

***********************************************************/

#include "agref.h"

void AgReferenceBase::doAssignmentLocks(const AgReferenceBase &r) {
  if (object!=0  && object->unlock()) {
    delete object;
  }
  object = r.object;
  if (object != 0) {
    object->lock();
  }
}

AgReferenceBase::AgReferenceBase() : object(0) {}

AgReferenceBase::AgReferenceBase(AgReferenceCount* object_)
  : object(object_)
{
  if (object != 0) {
    object->lock();
  }
}

AgReferenceBase::AgReferenceBase(const AgReferenceBase &r)
  : object(r.object)
{
  if (object!= 0) {
    object->lock();
  }
}

AgReferenceBase::~AgReferenceBase() {
  if (object!= 0 && object->unlock()) {
    delete object;
  }
}

int AgReferenceBase::exists() const {
  return object != 0;
}

void AgReferenceBase::discardData() {
  if (object && object->unlock()) {
    delete object;
  }
  object = 0;
}