diff --git a/C/qlyr.c b/C/qlyr.c index b1936c28b..1532b8819 100755 --- a/C/qlyr.c +++ b/C/qlyr.c @@ -168,9 +168,12 @@ static PredEntry * LookupPredEntry(PredEntry *op) { CACHE_REGS - CELL hash = (CELL)(op) % LOCAL_ImportPredEntryHashTableSize; + CELL hash; import_pred_entry_hash_entry_t *p; + if (LOCAL_ImportPredEntryHashTableSize == 0) + return NULL; + hash = (CELL)(op) % LOCAL_ImportPredEntryHashTableSize; p = LOCAL_ImportPredEntryHashChain[hash]; while (p) { if (p->oval == op) { @@ -186,9 +189,12 @@ static void InsertPredEntry(PredEntry *op, PredEntry *pe) { CACHE_REGS - CELL hash = (CELL)(op) % LOCAL_ImportPredEntryHashTableSize; + CELL hash; import_pred_entry_hash_entry_t *p; + if (LOCAL_ImportPredEntryHashTableSize == 0) + return NULL; + hash = (CELL)(op) % LOCAL_ImportPredEntryHashTableSize; p = LOCAL_ImportPredEntryHashChain[hash]; while (p) { if (p->oval == op) { @@ -807,7 +813,7 @@ ReadHash(IOSTREAM *stream) } RCHECK(read_tag(stream) == QLY_START_DBREFS); LOCAL_ImportDBRefHashTableNum = read_UInt(stream); - LOCAL_ImportDBRefHashTableSize = 2*LOCAL_ImportDBRefHashTableNum; + LOCAL_ImportDBRefHashTableSize = 2*LOCAL_ImportDBRefHashTableNum+17; LOCAL_ImportDBRefHashChain = (import_dbref_hash_entry_t **)calloc(LOCAL_ImportDBRefHashTableSize, sizeof(import_dbref_hash_entry_t *)); for (i = 0; i < LOCAL_ImportDBRefHashTableNum; i++) { LogUpdClause *ocl = (LogUpdClause *)read_UInt(stream); diff --git a/C/qlyw.c b/C/qlyw.c index b98757e95..d29f78588 100755 --- a/C/qlyw.c +++ b/C/qlyw.c @@ -875,6 +875,7 @@ p_save_module_preds( USES_REGS1 ) Yap_Error(TYPE_ERROR_ATOM,tmod,"save_module/2"); return FALSE; } + save_header( stream ); return save_module(stream, tmod) != 0; }