| 721 | } |
| 722 | |
| 723 | FLDoc FLEncoder_FinishDoc(FLEncoder e, FLError *outError) FLAPI { |
| 724 | if (e->fleeceEncoder) { |
| 725 | if (!e->hasError()) { |
| 726 | try { |
| 727 | return retain(e->fleeceEncoder->finishDoc()); // finish() can throw |
| 728 | } catch (const std::exception &x) { |
| 729 | e->recordException(x); |
| 730 | } |
| 731 | } |
| 732 | } else { |
| 733 | e->errorCode = kFLUnsupported; // Doc class doesn't support JSON data |
| 734 | } |
| 735 | // Failure: |
| 736 | if (outError) |
| 737 | *outError = e->errorCode; |
| 738 | e->reset(); |
| 739 | return nullptr; |
| 740 | } |
| 741 | |
| 742 | |
| 743 | FLSliceResult FLEncoder_Finish(FLEncoder e, FLError *outError) FLAPI { |