From 8acf96d26861a18de47ae6b5b543e925ec21611f Mon Sep 17 00:00:00 2001 From: Cheng Zhao Date: Thu, 25 Sep 2014 22:18:40 +0800 Subject: [PATCH] Make spliting paths faster. --- atom/common/lib/asar.coffee | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/atom/common/lib/asar.coffee b/atom/common/lib/asar.coffee index 98e30535342..eed88a220e4 100644 --- a/atom/common/lib/asar.coffee +++ b/atom/common/lib/asar.coffee @@ -18,14 +18,11 @@ process.on 'exit', -> # Separate asar package's path from full path. splitPath = (p) -> - return [false, p] unless typeof p is 'string' - components = p.split path.sep - for c, i in components by -1 - if path.extname(c) is '.asar' - asarPath = components.slice(0, i + 1).join path.sep - filePath = components.slice(i + 1).join path.sep - return [true, asarPath, filePath] - return [false, p] + return [false] if typeof p isnt 'string' + return [true, p, ''] if p.substr(-5) is '.asar' + index = p.lastIndexOf ".asar#{path.sep}" + return [false] if index is -1 + [true, p.substr(0, index + 5), p.substr(index + 6)] # Convert asar archive's Stats object to fs's Stats object. nextInode = 0