rendered paste body#include "psl_object.h"#include "error.h"extern psl_object psl_object_null = (psl_object){ 1, NULL, NULL, 0, (psl_member_node){"null", NULL, NULL, NULL}};psl_object *psl_object_new(char *name, psl_object *parent, size_t datalength, void *data){ psl_object *retval = malloc(sizeof(psl_object)); if(retval == NULL) ERROR("Out of memory.\n"); *retval = (psl_object){ 1, parent, (psl_member_node){name, NULL, NULL, NULL}, datalength, data }; return retval;}psl_object *psl_get_member(char *name, psl_object *object){ if(!strcmp(name, "null")) { psl_object *retval = malloc(sizeof(psl_object)); if(retval == NULL) ERROR("Out of memory.\n"); *retval = null; retval->parent = object; return retval; } recurse: int cmp = strcmp(name, object->members->name); if(!cmp) return object; else if (cmp < 0) { if (object->members->left) { object = object->members->left->o; goto recurse; } else return NULL; } else { if (object->members->right) { object = object->members->right->o; goto recurse; } else return NULL; }}