view anagram/support/agref.cpp @ 24:a4899cdfc2d6 default tip

Obfuscate the regexps to strip off the IBM compiler's copyright banners. I don't want bots scanning github to think they're real copyright notices because that could cause real problems.
author David A. Holland
date Mon, 13 Jun 2022 00:40:23 -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;
}