diff options
Diffstat (limited to 'dnn/Event.cc')
-rw-r--r-- | dnn/Event.cc | 21 |
1 files changed, 18 insertions, 3 deletions
diff --git a/dnn/Event.cc b/dnn/Event.cc index 3dbf5fb..3868985 100644 --- a/dnn/Event.cc +++ b/dnn/Event.cc @@ -3,7 +3,7 @@ * * by Stephane Chatty * - * Copyright 1993-1994 + * Copyright 1993-1995 * Centre d'Etudes de la Navigation Aerienne (CENA) * * Events. @@ -109,7 +109,7 @@ DnnEventType :: ~DnnEventType () } /*? -Build an even of type \var{t}. +Build an event of type \var{t}. ?*/ DnnEvent :: DnnEvent (const DnnEventType* t) : Type (*t) @@ -121,10 +121,25 @@ DnnEvent :: DnnEvent (const DnnEventType* t) Data = 0; } + +DnnEvent :: DnnEvent (const DnnEventType* t, bool alloc) +: Type (*t) +{ + if (alloc) { + int sz = t->GetTotalSize (); + if (sz > 0) + Data = new char [sz]; + else + Data = 0; + } else { + Data = (char*) (&Data + sizeof (char*)); + } +} + /*?nodoc?*/ DnnEvent :: ~DnnEvent () { - if (Data) + if (Data && Data != (char*) (&Data+sizeof (char*))) delete [] Data; } |