Only compile delta regex once
commit819c28bf8c666a61ef3b0a016dcbd6962ecaf4e4
authorDan McGee <dan@archlinux.org>
Fri, 30 Dec 2011 18:17:52 +0000 (30 12:17 -0600)
committerDan McGee <dan@archlinux.org>
Mon, 2 Jan 2012 18:55:55 +0000 (2 12:55 -0600)
tree7f6f9ba221cf7aa40daad40063a9110ddaecc20f
parent627cf6bca88c241d7e0d5563db46f87f64792653
Only compile delta regex once

This reduces the number of regcomp() calls when parsing delta entries in
the database from once per entry to once for the entire context handle
by storing the compiled regex data on the handle itself. Just as we do
with the cURL handle, we initialize it the first time it is needed and
free it when releasing the handle.

A few other small tweaks to the parsing function also take place,
including using the stack to store the transient and short file size
string while parsing it.

When parsing a sync database with 1378 delta entries, this reduces the
time of a `pacman -Sl deltas` operation by 50% from 0.22s to 0.12s.

Signed-off-by: Dan McGee <dan@archlinux.org>
lib/libalpm/be_sync.c
lib/libalpm/delta.c
lib/libalpm/delta.h
lib/libalpm/handle.c
lib/libalpm/handle.h