summaryrefslogtreecommitdiff
path: root/dnn/Event.cc
diff options
context:
space:
mode:
Diffstat (limited to 'dnn/Event.cc')
-rw-r--r--dnn/Event.cc21
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;
}