--- deliantra/server/common/loader.C 2009/11/08 22:30:48 1.140 +++ deliantra/server/common/loader.C 2009/11/09 03:08:23 1.141 @@ -1258,7 +1258,18 @@ f.put (kv->key, kv->value); if (op->uuid) - f.put (KW_uuid, op->uuid.c_str ()); + { + // highly optimised - this is often 25% of all data written + char *cur = f.force (sizeof ("uuid ") + UUID::MAX_LEN + 1); + char *ptr = cur; + + memcpy (ptr, "uuid ", sizeof ("uuid ") - 1); + ptr += sizeof ("uuid ") - 1; + ptr = op->uuid.append (ptr); + *ptr++ = '\n'; + + f.alloc (ptr - cur); + } #define CMP_OUT(v) if (expect_false (op->v != arch->v)) f.put (KW_ ## v, op->v) #define CMP_OUT2(k,v) if (expect_false (op->v != arch->v)) f.put (KW_ ## k, op->v)