Diff

Differences From Artifact [59919e0d2e]:

To Artifact [388927f9ca]:


641
642
643
644
645
646
647

648



649
650
651
652
653
654
655
641
642
643
644
645
646
647
648

649
650
651
652
653
654
655
656
657
658







+
-
+
+
+







		retval *= 16777619; /* FNV-1a 32-bit prime */
#else
		/* GCC Optimized replacement */
		retval += (retval << 1) + (retval << 4) + (retval << 7) + (retval << 8) + (retval << 24);
#endif
	}

	if (uid >= 0) {
	retval += uid;
		retval += uid;
		retval++;
	}

	return(retval);
}

/*
 * Cache Get Path Info lookups for speed
 */
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
914
915
916
917
918
919
920

921
922
923
924
925
926
927







-








		appfs_call_libtcl(Tcl_Release(interp);)

		return(-EIO);
	}

	pathinfo->packaged = 0;
	pathinfo->inode = appfs_get_path_inode(path, fsuid);

	appfs_call_libtcl(
		attr_value_str = Tcl_GetString(attr_value);

		switch (attr_value_str[0]) {
			case 'd': /* directory */
				pathinfo->type = APPFS_PATHTYPE_DIRECTORY;
1010
1011
1012
1013
1014
1015
1016






1017
1018
1019
1020
1021
1022
1023
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031







+
+
+
+
+
+







			}
		} else {
			pathinfo->time = appfs_boottime;
		}

		Tcl_Release(interp);
	)

	if (pathinfo->packaged) {
		pathinfo->inode = appfs_get_path_inode(path, -1);
	} else {
		pathinfo->inode = appfs_get_path_inode(path, fsuid);
	}

	if (retval == 0) {
		appfs_get_path_info_cache_add(path, fsuid, pathinfo);
	} else {
		APPFS_DEBUG("error: Invalid type for \"%s\" from Tcl", path);
	}