… | |
… | |
1256 | for (key_value *kv = op->key_values; kv; kv = kv->next) |
1256 | for (key_value *kv = op->key_values; kv; kv = kv->next) |
1257 | if (!arch->key_values || arch->kv (kv->key) != kv->value) |
1257 | if (!arch->key_values || arch->kv (kv->key) != kv->value) |
1258 | f.put (kv->key, kv->value); |
1258 | f.put (kv->key, kv->value); |
1259 | |
1259 | |
1260 | if (op->uuid) |
1260 | if (op->uuid) |
1261 | f.put (KW_uuid, op->uuid.c_str ()); |
1261 | { |
|
|
1262 | // highly optimised - this is often 25% of all data written |
|
|
1263 | char *cur = f.force (sizeof ("uuid ") + UUID::MAX_LEN + 1); |
|
|
1264 | char *ptr = cur; |
|
|
1265 | |
|
|
1266 | memcpy (ptr, "uuid ", sizeof ("uuid ") - 1); |
|
|
1267 | ptr += sizeof ("uuid ") - 1; |
|
|
1268 | ptr = op->uuid.append (ptr); |
|
|
1269 | *ptr++ = '\n'; |
|
|
1270 | |
|
|
1271 | f.alloc (ptr - cur); |
|
|
1272 | } |
1262 | |
1273 | |
1263 | #define CMP_OUT(v) if (expect_false (op->v != arch->v)) f.put (KW_ ## v, op->v) |
1274 | #define CMP_OUT(v) if (expect_false (op->v != arch->v)) f.put (KW_ ## v, op->v) |
1264 | #define CMP_OUT2(k,v) if (expect_false (op->v != arch->v)) f.put (KW_ ## k, op->v) |
1275 | #define CMP_OUT2(k,v) if (expect_false (op->v != arch->v)) f.put (KW_ ## k, op->v) |
1265 | |
1276 | |
1266 | CMP_OUT (x); |
1277 | CMP_OUT (x); |