From eb26b0413c269b898a24deb30d5602ac0c142a56 Mon Sep 17 00:00:00 2001 From: mickeyl Date: Sat, 08 Nov 2003 20:39:38 +0000 Subject: refactor the debug mapper and make it more secure --- (limited to 'libopie2/tools') diff --git a/libopie2/tools/regen.py b/libopie2/tools/regen.py index 2f7f418..9ad5352 100755 --- a/libopie2/tools/regen.py +++ b/libopie2/tools/regen.py @@ -20,32 +20,41 @@ except: print >>tablehfile,""" /* - * ioctl table - generated by regen.py - (C) Michael 'Mickey' Lauer + * debug value mapper - generated by regen.py - (C) Michael 'Mickey' Lauer */ -#ifndef IOCTLMAP_H -#define IOCTLMAP_H +#ifndef DEBUGMAPPER_H +#define DEBUGMAPPER_H #include #include typedef QIntDict IntStringMap; -IntStringMap* constructIoctlMap(); +class DebugMapper +{ + public: + DebugMapper(); + ~DebugMapper(); + + const QString& map( int value ) const; + private: + IntStringMap _map; +}; #endif """ print >>tablecfile,""" /* - * ioctl table - generated by regen.py - (C) Michael 'Mickey' Lauer + * debug value mapper - generated by regen.py - (C) Michael 'Mickey' Lauer */ #include "%s" -IntStringMap* constructIoctlMap() +DebugMapper::DebugMapper() { -\tIntStringMap* map = new IntStringMap(); + qDebug( "DebugMapper::DebugMapper()" ); """ % (tablehfile.name) @@ -54,11 +63,32 @@ for line in result: if not l[0].startswith( "#define" ) or not l[2].startswith( "0x" ): print >>sys.stderr, "can't parse line: %s" % l continue - #print >>tablecfile, "\tqDebug( \"adding %s = %s\" );" % ( l[2], l[1] ) - print >>tablecfile, "\tmap->insert( %s, new QString(\"%s\") );" % ( l[2], l[1] ) + print >>tablecfile, " _map.insert( %s, new QString(\"%s\") );" % ( l[2], l[1] ) print >>tablecfile,""" -\treturn map; }; -""" \ No newline at end of file + + +DebugMapper::~DebugMapper() +{ + qDebug( "DebugMapper::~DebugMapper()" ); +} + + +const QString& DebugMapper::map( int value ) const +{ + QString* result = _map[ value ]; + + if ( !result ) + { + qDebug( "DebugMapper::map() - value not found." ); + return QString::null; + } + else + { + return *result; + } +} + +""" -- cgit v0.9.0.2