Fixed #4964 (printf format argument check only supports simple variables)
preprocessor optimization, unnecessary map creation removed
it used to be O(n^2), now it's only O(n)
Updated authors (vflashm)
spelling fix: desctructor => destructor