setGUID method

void setGUID(
  1. String guidString
)

Create GUID from common {FDD39AD0-238F-46AF-ADB4-6C85480369C7} format

Implementation

void setGUID(String guidString) {
  assert(guidString.length == 38);
  Data1 = int.parse(guidString.substring(1, 9), radix: 16);
  Data2 = int.parse(guidString.substring(10, 14), radix: 16);
  Data3 = int.parse(guidString.substring(15, 19), radix: 16);

  // Final component is pushed on the stack in reverse order per x64
  // calling convention.
  final rawString = guidString.substring(35, 37) +
      guidString.substring(33, 35) +
      guidString.substring(31, 33) +
      guidString.substring(29, 31) +
      guidString.substring(27, 29) +
      guidString.substring(25, 27) +
      guidString.substring(22, 24) +
      guidString.substring(20, 22);

  // We need to split this to avoid overflowing a signed int.parse()
  Data4 = (int.parse(rawString.substring(0, 4), radix: 16) << 48) +
      int.parse(rawString.substring(4, 16), radix: 16);
}