> > In release build this class resolved to empty statements. > In debug build it is useful for measurement of execution time. > > Signed-off-by: Yuri Benditovich <yuri.benditovich@xxxxxxxxxx> > --- > qxldod/QxlDod.h | 35 +++++++++++++++++++++++++++++++++++ > 1 file changed, 35 insertions(+) > > diff --git a/qxldod/QxlDod.h b/qxldod/QxlDod.h > index f441f4b..324b940 100755 > --- a/qxldod/QxlDod.h > +++ b/qxldod/QxlDod.h > @@ -225,6 +225,41 @@ typedef struct _CURRENT_BDD_MODE > } FrameBuffer; > } CURRENT_BDD_MODE; > > +#if DBG > +class TimeMeasurement > +{ > +public: > + TimeMeasurement() > + { > + Start(); > + } > + void Start() > + { > + KeQuerySystemTime(&li1); > + } > + void Stop() > + { > + KeQuerySystemTime(&li2); > + } > + ULONG Diff() > + { > + return (ULONG)((li2.QuadPart - li1.QuadPart) / 10000); > + } > +protected: This seems to indicate that the class is written to be a base class but there's no virtual destructor. > + LARGE_INTEGER li1; > + LARGE_INTEGER li2; > +}; > +#else > +class TimeMeasurement > +{ > +public: > + TimeMeasurement() {} > + void Start() {} > + void Stop() {} > + ULONG Diff() { return 0; } > +}; > +#endif > + It's also possible to use the class in weird way having negative numbers (just call Start after Stop). Would not something like this prevent these issues? class TimeMeasurement { public: TimeMeasurement() { #if DBG KeQuerySystemTime(&li_start); #endif } ULONG Elapsed() const { #if DBG LARGE_INTEGER li_end; KeQuerySystemTime(&li_end); return (ULONG)((li_end.QuadPart - li_end.QuadPart) / 10000); #else return 0; #endif } private: #if DBG LARGE_INTEGER li1; #endif }; > class QxlDod; > > class HwDeviceInterface { Frediano _______________________________________________ Spice-devel mailing list Spice-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/spice-devel