summaryrefslogtreecommitdiff
path: root/ext
diff options
context:
space:
mode:
authorNick Ing-Simmons <nik@tiuk.ti.com>1998-02-17 13:19:18 +0000
committerMalcolm Beattie <mbeattie@sable.ox.ac.uk>1998-02-20 12:45:08 +0000
commit6c5989e9d8ff294ed369afe5749cd5b1711c88c5 (patch)
tree18af64baeddfee734d11147aba3d12c1f056308a /ext
parenta411490c39ef480e7361bd7fb2e9f88c12bf760f (diff)
downloadperl-6c5989e9d8ff294ed369afe5749cd5b1711c88c5.tar.gz
DB_File ->length does not work just after tie.
p4raw-id: //depot/perl@553
Diffstat (limited to 'ext')
-rw-r--r--ext/DB_File/DB_File.xs8
1 files changed, 8 insertions, 0 deletions
diff --git a/ext/DB_File/DB_File.xs b/ext/DB_File/DB_File.xs
index 91b4dc2ad5..b6da38609d 100644
--- a/ext/DB_File/DB_File.xs
+++ b/ext/DB_File/DB_File.xs
@@ -533,6 +533,14 @@ DB_File db ;
DBT_flags(key) ;
DBT_flags(value) ;
RETVAL = do_SEQ(db, key, value, R_LAST) ;
+ if (RETVAL < 0 && errno == EBADF)
+ {
+ recno_t oops = -1;
+ key.data = &oops;
+ key.size = sizeof(oops);
+ db_get(db, key, value, 0);
+ RETVAL = do_SEQ(db, key, value, R_LAST) ;
+ }
if (RETVAL == 0)
RETVAL = *(I32 *)key.data ;
else /* No key means empty file */