Changes between Version 20 and Version 21 of StructuredBinaryData
- Timestamp:
- 2012-08-07T06:14:35Z (12 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
StructuredBinaryData
v20 v21 272 272 could pass the whole blob as a parameter and apply transforms to subblobs. 273 273 This is essential for non‐sequential blobs like filesystems. 274 Infinite loop detection:: When decoding transforms like 275 `struct { if (.non_existent) { } }`, an infinite loop occurs. This can also 276 happen if the field exists, but in an outer `struct`. An error should be 277 printed instead; Bithenge should not try to look in the `if` when searching 278 for `.non_existent`. 274 279 Complex expressions:: Expressions that use operators or call transforms. 280 Better error reporting:: errno.h is intended for system call errors; when 281 other errors occur, a more helpful error message should be printed, like 282 "field .foo not found" or "cannot apply nonzero_boolean to blobs". 275 283 Assertions:: These could be implemented as transforms that don't actually 276 284 change the input. There could be multiple levels, ranging from “warning” to … … 278 286 Enumerations:: An easier way to handle many constant values, like 279 287 `enum { 0: "none", 1: "file", 2: "directory", 3: "symlink" }`. 288 Recursive transforms:: Although simple cases are handled by `do...while`, in 289 some cases transforms need to recursively refer to themselves or each other. 280 290 Merge blobs and internal nodes:: Currently, `struct`, `repeat`, and so on only 281 291 work with blobs, which must be either byte sequences or bit sequences.