diff options
author | Arne Georg Gleditsch <argggh@lxr.linpro.no> | 2009-08-12 22:48:23 +0200 |
---|---|---|
committer | Arne Georg Gleditsch <argggh@lxr.linpro.no> | 2009-08-12 22:48:23 +0200 |
commit | 4df686a0aa8ef2f75be6cee2bfa2874f1bbb4437 (patch) | |
tree | 03833400baeb036eb0c87e3fa44a52574bfe07fd | |
parent | edd2d08a9aef32f442f43fb960a80680389b1685 (diff) | |
parent | 40c6f593f54c8023d6ed74e695de6b3a56a74bad (diff) |
Merge branch 'master' of /home/argggh/git/lxrng/v1.2
-rw-r--r-- | lib/LXRng/Index/DBI.pm | 3 | ||||
-rw-r--r-- | lib/LXRng/Index/PgBatch.pm | 2 | ||||
-rw-r--r-- | lib/LXRng/Search/Xapian.pm | 2 | ||||
-rwxr-xr-x | lxr-genxref | 17 |
4 files changed, 17 insertions, 7 deletions
diff --git a/lib/LXRng/Index/DBI.pm b/lib/LXRng/Index/DBI.pm index 8fcb391..eeb6a83 100644 --- a/lib/LXRng/Index/DBI.pm +++ b/lib/LXRng/Index/DBI.pm @@ -471,7 +471,8 @@ sub get_symbol_usage { my %rlines; foreach my $r (@$res) { - $rlines{$$r[0]} = [$$r[1] =~ /(\d+),?/g]; + $rlines{$$r[0]} = ref($$r[1]) eq 'ARRAY' + ? $$r[1] : [$$r[1] =~ /(\d+),?/g]; } return \%rlines; diff --git a/lib/LXRng/Index/PgBatch.pm b/lib/LXRng/Index/PgBatch.pm index c1b30eb..7bd67e6 100644 --- a/lib/LXRng/Index/PgBatch.pm +++ b/lib/LXRng/Index/PgBatch.pm @@ -52,7 +52,7 @@ sub transaction { # Only occasional synchronization if we're inside another # transaction. # TODO: Check fill grade of caches and flush based on that. - if ($self->{'writes'}++ % 491 == 0) { + if ($self->{'writes'}++ % 3259 == 0) { $self->flush(); $self->dbh->commit(); } diff --git a/lib/LXRng/Search/Xapian.pm b/lib/LXRng/Search/Xapian.pm index 014d57a..5230728 100644 --- a/lib/LXRng/Search/Xapian.pm +++ b/lib/LXRng/Search/Xapian.pm @@ -81,7 +81,7 @@ sub add_document { } my $doc_id = $self->wrdb->add_document($doc); $self->{'writes'}++; - $self->flush() if $self->{'writes'} % 499 == 0; + $self->flush() if $self->{'writes'} % 3271 == 0; return $doc_id; } diff --git a/lxr-genxref b/lxr-genxref index 414b83b..d0fe93e 100755 --- a/lxr-genxref +++ b/lxr-genxref @@ -280,16 +280,22 @@ sub reference_file($$$) { sub hash_file($$$) { my ($file, $fileid, $rels) = @_; - return 0 if - defined($context->config->{'search_size_limit'}) and + if (defined($context->config->{'search_size_limit'}) and $context->config->{'search_size_limit'} > 0 and - $file->size > $context->config->{'search_size_limit'}; + $file->size > $context->config->{'search_size_limit'}) + { + $index->to_hash($fileid); + $index->to_reference($fileid); + return 0; + } my $docid; if ($index->to_hash($fileid)) { my $handle; sysopen($handle, $file->phys_path, 0) || die($!); unless (-T $handle) { + # Non-text file. Mark as referenced as well. + $index->to_reference($fileid); $handle->close(); return 0; } @@ -323,7 +329,10 @@ sub hash_file($$$) { } else { $docid = $index->get_hashed_document($fileid); - return 0 unless $docid; + unless ($docid) { + $index->to_reference($fileid); + return 0; + } my $doc = $hash->get_document($docid); if (reference_file($file, $fileid, $doc)) { $hash->save_document($docid, $doc); |