Fix DB opening code so that, if O_CREATE is set, so is O_TRUNC.

git-svn-id: svn://10.0.0.236/trunk@12388 18797224-902f-48f8-a5cc-f745e15eee43
This commit is contained in:
rjc%netscape.com
1998-10-09 01:31:31 +00:00
parent 10fa5f97ae
commit 9654b38277

View File

@@ -120,9 +120,11 @@ readInBookmarksOnInit(RDFFile f)
*/
}
PR_Close(fp);
freeMem(f->line);
freeMem(f->currentSlot);
freeMem(f->holdOver);
#if 0
if (f->line != NULL) freeMem(f->line);
if (f->currentSlot != NULL) freeMem(f->currentSlot);
if (f->holdOver != NULL) freeMem(f->holdOver);
#endif
}
@@ -133,6 +135,8 @@ DBM_OpenDBMStore (DBMRDF store, char* directory)
PRBool createp = 0;
char* dbPathname;
char* dirPathname;
int mode=(O_RDWR | O_CREAT);
CHECK_VAR1(profileDirURL);
dirPathname = makeDBURL(directory);
CallPRMkDirUsingFileURL(dirPathname, 00700);
@@ -140,10 +144,13 @@ DBM_OpenDBMStore (DBMRDF store, char* directory)
dbPathname = makeRDFDBURL(directory, "names.db");
CHECK_VAR1(dbPathname);
store->nameDB = CallDBOpenUsingFileURL(dbPathname, O_RDWR, 0644, DB_HASH, &hash_info);
store->nameDB = CallDBOpenUsingFileURL(dbPathname,
O_RDWR, 0644, DB_HASH, &hash_info);
if (store->nameDB == NULL) {
createp = 1;
store->nameDB = CallDBOpenUsingFileURL(dbPathname, O_RDWR | O_CREAT, 0644, DB_HASH, &hash_info);
mode = (O_RDWR | O_CREAT | O_TRUNC);
store->nameDB = CallDBOpenUsingFileURL(dbPathname,
mode, 0644, DB_HASH, &hash_info);
}
freeMem(dbPathname);
CHECK_VAR1(store->nameDB);
@@ -151,14 +158,14 @@ DBM_OpenDBMStore (DBMRDF store, char* directory)
CHECK_VAR1(dbPathname);
hash_info.bsize = 2056;
store->childrenDB = CallDBOpenUsingFileURL(dbPathname,
O_RDWR | O_CREAT, 0644, DB_HASH, &hash_info);
mode, 0644, DB_HASH, &hash_info);
freeMem(dbPathname);
CHECK_VAR1(store->childrenDB);
dbPathname = makeRDFDBURL(directory, "lstr.db");
hash_info.bsize = 1024 ;
store->propDB = CallDBOpenUsingFileURL(dbPathname,
O_RDWR | O_CREAT, 0644, DB_HASH, &hash_info);
mode, 0644, DB_HASH, &hash_info);
freeMem(dbPathname);
CHECK_VAR1(store->propDB);
@@ -166,15 +173,13 @@ DBM_OpenDBMStore (DBMRDF store, char* directory)
CHECK_VAR1(dbPathname);
hash_info.bsize = 1024*16;
store->invPropDB = CallDBOpenUsingFileURL(dbPathname,
O_RDWR | O_CREAT, 0644, DB_HASH, &hash_info);
mode, 0644, DB_HASH, &hash_info);
freeMem(dbPathname);
CHECK_VAR1(store->invPropDB);
if (strcmp(directory, "NavCen") == 0) {
RDF_Resource bmk = RDF_GetResource(NULL, "NC:Bookmarks", true);
if (createp) {
PRBool nlocalStoreAssert1 (RDFFile f, RDFT rdf, RDF_Resource u, RDF_Resource s, void* v,
RDF_ValueType type, PRBool tv) ;
RDFFile newFile;
doingFirstTimeInitp = 1;
newFile = makeRDFFile(gBookmarkURL, bmk, true);