| 123 | } |
| 124 | |
| 125 | CBData* CodeBuilder::newDataNode(const void* data, uint32_t size) noexcept { |
| 126 | if (size > CBData::kInlineBufferSize) { |
| 127 | void* cloned = _cbDataZone.alloc(size); |
| 128 | if (!cloned) return nullptr; |
| 129 | |
| 130 | if (data) ::memcpy(cloned, data, size); |
| 131 | data = cloned; |
| 132 | } |
| 133 | |
| 134 | return newNodeT<CBData>(const_cast<void*>(data), size); |
| 135 | } |
| 136 | |
| 137 | CBConstPool* CodeBuilder::newConstPool() noexcept { |
| 138 | CBConstPool* node = newNodeT<CBConstPool>(); |