Update Duplicate Detection - #77
Lightning11wins wants to merge 488 commits into
Conversation
gbeeley
left a comment
There was a problem hiding this comment.
First pass here, covering all of the documentation and other parts of this PR except the clusters.c and objdrv_cluster.c files. Thanks!
|
Ok, this is odd. Github crashed when I submitted this PR review. This initial review is for everything except the core of this PR (clusters.c and objdrv_cluster.c). So I'm not sure Github submitted this correctly. |
|
FYI: I just cleaned up my todos for you, but I also updated and reorganized the lists in each PR so that they only include todos in their respective branches. |
|
Just pushed a commit to fix this. |
|
Resolved |
|
PR cleared for human review. |
nboard
left a comment
There was a problem hiding this comment.
Overall, excellent work! I can tell you put a lot of care into making sure the code was readable and well documented.
All of requested changes are open to discussion, so please reach out to me with any questions.
| /* Centrallix Application Server System */ | ||
| /* Centrallix Core */ | ||
| /* */ | ||
| /* Copyright (C) 1998-2012 LightSys Technology Services, Inc. */ |
There was a problem hiding this comment.
I believe this is meant to be through the year the file was last changed (though it seems we generally do a bad job of updating it). I would at least put it through the date it was created, though.
To avoid burying you in (even more) comments I'll just mention it here.
There was a problem hiding this comment.
Ahh, I think we later came to the conclusion that all licenses in modified files should be updated, but I forgot to apply that to this project.
I've applied this change to all modified files on this branch. Done.
There was a problem hiding this comment.
It looks like xarray and mtsession both had a decent number of changes but never had their copyright dates updated. Was there a reason you did not want to update the dates on those?
There was a problem hiding this comment.
I forgot, updated.
| if (source_data->Strings == NULL) goto err_free; | ||
| data_xarray.nAlloc = 0; | ||
|
|
||
| /** Trim and store vectors. **/ |
There was a problem hiding this comment.
If the second or third call to ci_xaToTrimmedArray fails, then source_data has either keys or keys and strings which never get freed, and which get ignored by the calling function on failure, and thus would be leaked.
There was a problem hiding this comment.
Ah, yup, I think I see that. It should be fixed now.
There was a problem hiding this comment.
It looks like this is still a problem, since the only place the contents of the strings in the arrays are freed requires the xArrays to exist. That is, if an error occurs after one or more xArray is freed, then the list itself stored in source_data is freed, but not the strings stored by the list
There was a problem hiding this comment.
I added a proper cleanup goto so the memory leaks should be fixed now.
|
@greptileai Review this PR please. :) |
|
|
@greptileai Please re-review. |
|
@greptileai Please re-review. |
… manually in case new fields are added.
…ontext (which could be intentional).
… 1024.0 KiB, which should be 1.0 MiB.
…pointers, which confused the compiler.
# Conflicts: # centrallix-lib/tests/test_utils.h
# Conflicts: # centrallix-lib/tests/test_strtcpy_13.c
Wow, how many more of these are there!?
The duplicate detection project is ready to review, although (best case), there are still a couple of things blocking it from being ready to merge.
I would appreciate a full review of all changes, as there's quite a lot here. That said, some areas may require additional special attention, so I've compiled a list of all 28
TODO: Gregcomments below. (Note: Some of my todos assume the reader understands various pieces of nearby context / has generally read the indicated source code.)TODO: Gregs inobjdrv_cluster.cTODO: Greginmtsession.md.TODO: Greginxarray.md.TODO: Greginxstring.md.Please let me know if you have any questions, comments, or concerns about my changes and design choices.
GitHub Relationships
centrallix-libTests #170centrallix-libUtilities #130centrallix-libUtilities #130