diff --git a/tests/pepperfish_profiler.lua b/tests/pepperfish_profiler.lua index 407f582c..2705ce3a 100644 --- a/tests/pepperfish_profiler.lua +++ b/tests/pepperfish_profiler.lua @@ -206,8 +206,9 @@ function _profiler._internal_profile_by_call(self,action) -- Retrieve the most recent activation record... local latest_ar = nil - if table.getn(self.callstack) > 0 then - latest_ar = self.callstack[table.getn(self.callstack)] + local callstackLen = #self.callstack + if callstackLen > 0 then + latest_ar = self.callstack[callstackLen] end -- Are we allowed to profile this function? @@ -280,7 +281,8 @@ function _profiler._internal_profile_by_call(self,action) end -- Last thing to do on return is to drop the last activation record... - table.remove( self.callstack, table.getn( self.callstack ) ) + local callstackLen = #self.callstack + table.remove( self.callstack, callstackLen ) end end @@ -400,13 +402,15 @@ function _profiler.report( self, outfile, sort_by_total_time ) ) end - for i=1,table.getn(ordering) do + local len = #ordering + for i=1,len do local func = ordering[i] local record = self.rawstats[func] local thisfuncname = " " .. self:_pretty_name(func) .. " " if string.len( thisfuncname ) < 42 then + local nameLen = math.ceil((42 - string.len(thisfuncname))/2) thisfuncname = - string.rep( "-", (42 - string.len(thisfuncname))/2 ) .. thisfuncname + string.rep( "-", nameLen) .. thisfuncname thisfuncname = thisfuncname .. string.rep( "-", 42 - string.len(thisfuncname) ) end @@ -476,20 +480,24 @@ function _profiler.lua_report(self,outfile) local functonum = {} for func,record in pairs(self.rawstats) do table.insert(ordering, func) - functonum[func] = table.getn(ordering) + local len = #ordering + functonum[func] = len end outfile:write( "-- Profile generated by profiler.lua Copyright Pepperfish 2002+\n\n" ) outfile:write( "-- Function names\nfuncnames = {}\n" ) - for i=1,table.getn(ordering) do + local len = #ordering + for i=1,len do local thisfunc = ordering[i] outfile:write( "funcnames[" .. i .. "] = " .. string.format("%q", self:_pretty_name(thisfunc)) .. "\n" ) end outfile:write( "\n" ) outfile:write( "-- Function times\nfunctimes = {}\n" ) - for i=1,table.getn(ordering) do + + local len = #ordering + for i=1,len do local thisfunc = ordering[i] local record = self.rawstats[thisfunc] outfile:write( "functimes[" .. i .. "] = { " ) @@ -500,7 +508,9 @@ function _profiler.lua_report(self,outfile) end outfile:write( "\n" ) outfile:write( "-- Child links\nchildren = {}\n" ) - for i=1,table.getn(ordering) do + + local len = #ordering + for i=1,len do local thisfunc = ordering[i] local record = self.rawstats[thisfunc] outfile:write( "children[" .. i .. "] = { " ) @@ -513,7 +523,9 @@ function _profiler.lua_report(self,outfile) end outfile:write( "\n" ) outfile:write( "-- Child call counts\nchildcounts = {}\n" ) - for i=1,table.getn(ordering) do + + local len = #ordering + for i=1,len do local thisfunc = ordering[i] local record = self.rawstats[thisfunc] outfile:write( "children[" .. i .. "] = { " ) @@ -526,7 +538,8 @@ function _profiler.lua_report(self,outfile) end outfile:write( "\n" ) outfile:write( "-- Child call time\nchildtimes = {}\n" ) - for i=1,table.getn(ordering) do + local len = #ordering + for i=1,len do local thisfunc = ordering[i] local record = self.rawstats[thisfunc]; outfile:write( "children[" .. i .. "] = { " )