//
// Group class for the CUPS PPD Compiler.
//
-// Copyright 2007 by Apple Inc.
+// Copyright 2007-2009 by Apple Inc.
// Copyright 2002-2005 by Easy Software Products.
//
// These coded instructions, statements, and computer programs are the
//
// Contents:
//
-// ppdcGroup::ppdcGroup() - Create a new group.
// ppdcGroup::ppdcGroup() - Copy a new group.
// ppdcGroup::~ppdcGroup() - Destroy a group.
// ppdcGroup::find_option() - Find an option in a group.
// Include necessary headers...
//
-#include "ppdc.h"
+#include "ppdc-private.h"
//
ppdcGroup::ppdcGroup(const char *n, // I - Name of group
const char *t) // I - Text of group
{
+ PPDC_NEWVAL(n);
+
name = new ppdcString(n);
text = new ppdcString(t);
options = new ppdcArray();
ppdcGroup::ppdcGroup(ppdcGroup *g) // I - Group template
{
- ppdcOption *o; // Current option
-
+ PPDC_NEWVAL(g->name->value);
- g->name->get();
- g->text->get();
+ g->name->retain();
+ g->text->retain();
name = g->name;
text = g->text;
options = new ppdcArray();
- for (o = (ppdcOption *)g->options->first(); o; o = (ppdcOption *)g->options->next())
+ for (ppdcOption *o = (ppdcOption *)g->options->first();
+ o;
+ o = (ppdcOption *)g->options->next())
options->add(new ppdcOption(o));
}
ppdcGroup::~ppdcGroup()
{
+ PPDC_DELETEVAL(name ? name->value : NULL);
+
name->release();
text->release();
- delete options;
+ options->release();
+
+ name = text = 0;
+ options = 0;
}