| 646 | } |
| 647 | |
| 648 | void fxVerifyError(txMachine* the, txSlot* path, txID id, txIndex index, txString string) |
| 649 | { |
| 650 | txSlot* array; |
| 651 | txSlot* slot; |
| 652 | txSlot* stack; |
| 653 | |
| 654 | array = mxResult->value.reference->next; |
| 655 | slot = fxNewSlot(the); |
| 656 | slot->next = array->next; |
| 657 | array->next = slot; |
| 658 | array->value.array.length++; |
| 659 | fxString(the, slot, ""); |
| 660 | |
| 661 | stack = the->stack; |
| 662 | while (path) { |
| 663 | mxPushSlot(path); |
| 664 | path = path->next; |
| 665 | } |
| 666 | while (the->stack < stack) { |
| 667 | if (the->stack->kind == XS_STRING_X_KIND) { |
| 668 | fxVerifyErrorString(the, slot, XS_NO_ID, 0, the->stack->value.string); |
| 669 | } |
| 670 | else { |
| 671 | fxVerifyErrorString(the, slot, the->stack->value.at.id, the->stack->value.at.index, C_NULL); |
| 672 | } |
| 673 | mxPop(); |
| 674 | } |
| 675 | fxVerifyErrorString(the, slot, id, index, string); |
| 676 | |
| 677 | |
| 678 | // current = path; |
| 679 | // next = C_NULL; |
| 680 | // previous = C_NULL; |
| 681 | // while (current) { |
| 682 | // next = current->next; |
| 683 | // current->next = previous; |
| 684 | // previous = current; |
| 685 | // current = next; |
| 686 | // } |
| 687 | // |
| 688 | // path = previous; |
| 689 | // current = path; |
| 690 | // while (current) { |
| 691 | // if (current->kind == XS_STRING_X_KIND) { |
| 692 | // fxVerifyErrorString(the, slot, XS_NO_ID, 0, current->value.string); |
| 693 | // } |
| 694 | // else { |
| 695 | // fxVerifyErrorString(the, slot, current->value.at.id, current->value.at.index, C_NULL); |
| 696 | // } |
| 697 | // current = current->next; |
| 698 | // } |
| 699 | // fxVerifyErrorString(the, slot, id, index, string); |
| 700 | // |
| 701 | // current = path; |
| 702 | // next = C_NULL; |
| 703 | // previous = C_NULL; |
| 704 | // while (current) { |
| 705 | // next = current->next; |
no test coverage detected