aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/api/private
diff options
context:
space:
mode:
Diffstat (limited to 'src/nvim/api/private')
-rw-r--r--src/nvim/api/private/defs.h9
-rw-r--r--src/nvim/api/private/helpers.c11
2 files changed, 16 insertions, 4 deletions
diff --git a/src/nvim/api/private/defs.h b/src/nvim/api/private/defs.h
index 76ac23a521..6c8e324649 100644
--- a/src/nvim/api/private/defs.h
+++ b/src/nvim/api/private/defs.h
@@ -22,6 +22,15 @@ typedef enum {
kErrorTypeValidation
} ErrorType;
+typedef enum {
+ kMessageTypeRequest,
+ kMessageTypeResponse,
+ kMessageTypeNotification
+} MessageType;
+
+/// Used as the message ID of notifications.
+#define NO_RESPONSE UINT64_MAX
+
typedef struct {
ErrorType type;
char msg[1024];
diff --git a/src/nvim/api/private/helpers.c b/src/nvim/api/private/helpers.c
index 39ca0756f3..67ff77ebac 100644
--- a/src/nvim/api/private/helpers.c
+++ b/src/nvim/api/private/helpers.c
@@ -61,7 +61,7 @@ bool try_end(Error *err)
free_global_msglist();
if (should_free) {
- free(msg);
+ xfree(msg);
}
} else if (did_throw) {
api_set_error(err, Exception, "%s", current_exception->value);
@@ -405,6 +405,9 @@ bool object_to_vim(Object obj, typval_T *tv, Error *err)
tv->vval.v_number = obj.data.boolean;
break;
+ case kObjectTypeBuffer:
+ case kObjectTypeWindow:
+ case kObjectTypeTabpage:
case kObjectTypeInteger:
if (obj.data.integer > INT_MAX || obj.data.integer < INT_MIN) {
api_set_error(err, Validation, _("Integer value outside range"));
@@ -489,7 +492,7 @@ void api_free_string(String value)
return;
}
- free(value.data);
+ xfree(value.data);
}
void api_free_object(Object value)
@@ -527,7 +530,7 @@ void api_free_array(Array value)
api_free_object(value.items[i]);
}
- free(value.items);
+ xfree(value.items);
}
void api_free_dictionary(Dictionary value)
@@ -537,7 +540,7 @@ void api_free_dictionary(Dictionary value)
api_free_object(value.items[i].value);
}
- free(value.items);
+ xfree(value.items);
}
Dictionary api_metadata(void)