Index: xvfs-create-c.c ================================================================== --- xvfs-create-c.c +++ xvfs-create-c.c @@ -345,10 +345,11 @@ xvfs_state.children = malloc(sizeof(*xvfs_state.children) * xvfs_state.child_len); #define parse_xvfs_minirivet_getbyte(var) var = fgetc(fp); if (var == EOF) { break; } mode = XVFS_MINIRIVET_MODE_COPY; + tcl_buffer_p = NULL; while (1) { parse_xvfs_minirivet_getbyte(ch); switch (mode) { case XVFS_MINIRIVET_MODE_COPY: Index: xvfs-create-synthetic ================================================================== --- xvfs-create-synthetic +++ xvfs-create-synthetic @@ -19,16 +19,26 @@ dict set ::myOwnVFS "xvfs-create-synthetic" { type file } proc ::xvfs::callback::addOutputFiles {fsName} { + for {set i 0} {$i < 100000} {incr i} { + set filename [expr rand()] + ::xvfs::processFile $fsName "" $filename [dict create type file fileContents [expr rand()]] + lappend retval $filename + } + + dict set ::myOwnVFS "" children [list foo xvfs-create-synthetic {*}$retval] + dict for {outputName fileContentsDict} $::myOwnVFS { set inputFile $outputName if {[dict exists $fileContentsDict inputFile]} { set inputFile [dict get $fileContentsDict inputFile] } ::xvfs::processFile $fsName $inputFile $outputName $fileContentsDict } - return [dict keys $::myOwnVFS] + lappend retval {*}[dict keys $::myOwnVFS] + + return $retval } ::xvfs::run --directory [pwd] --name synthetic Index: xvfs-test-phf ================================================================== --- xvfs-test-phf +++ xvfs-test-phf @@ -16,10 +16,10 @@ for {set idx 0} {$idx < [llength $list]} {incr idx} { set subList [lrange $list 0 $idx] puts "$idx ($subList):" puts [time { - puts [::xvfs::generatePerfectHashFunctionCall pathName strlen(pathName) -1 $subList triesAtHashSize 1] + puts [::xvfs::generatePerfectHashFunctionCall pathName strlen(pathName) -1 $subList useCacheFirst true] } 1] puts "" }