Skip to content

NewGuid's bug #31

@luowycn

Description

@luowycn

The expression of ComDebug(DevComDebug).NewGuid is wrong:
"256 * g[3] MOD 256" which shoule be "g[3] MOD 256 * 256"
fixed procedure(with debug code): ```

PROCEDURE NewGuid*;
	VAR f: TextMappers.Formatter; g: COM.GUID; res: COM.RESULT; n: INTEGER;
	(*VAR buf:ARRAY 40 OF CHAR;*)
BEGIN
	f.ConnectTo(TextModels.CloneOf(StdLog.buf)); n := 10;
	WHILE n > 0 DO
		res := WinOle.CoCreateGuid(g);
		f.WriteChar("{");
		Hex(f, g[2] MOD 256 + g[3] MOD 256 * 256, 4);
		Hex(f, g[0] MOD 256 + g[1] MOD 256 * 256, 4);
		f.WriteChar("-");
		Hex(f, g[4] MOD 256 + g[5] MOD 256 *256, 4);
		f.WriteChar("-");
		Hex(f, g[6] MOD 256 + g[7] MOD 256 *256, 4);
		f.WriteChar("-");
		Hex(f, g[8] MOD 256, 2);
		Hex(f, g[9] MOD 256, 2);
		f.WriteChar("-");
		Hex(f, g[10] MOD 256, 2);
		Hex(f, g[11] MOD 256, 2);
		Hex(f, g[12] MOD 256, 2);
		Hex(f, g[13] MOD 256, 2);
		Hex(f, g[14] MOD 256, 2);
		Hex(f, g[15] MOD 256, 2);
		f.WriteChar("}");
	(*
		res:=WinOle.StringFromGUID2(g,buf,LEN(buf));
		f.WriteString(buf);
	*)
		f.WriteLn; DEC(n)
	END;
	OpenInfoViewer(f.rider.Base(), "Guids");
	f.ConnectTo(NIL)
END NewGuid;

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions