Change every PagedArticleEntry pointers to refs in PagedArticle.

This commit is contained in:
Relintai 2022-02-04 20:54:52 +01:00
parent 5ed9081c69
commit ac66ecd84a
2 changed files with 14 additions and 13 deletions

View File

@ -11,9 +11,9 @@
void PagedArticle::handle_request_main(Request *request) { void PagedArticle::handle_request_main(Request *request) {
const String r = request->get_current_path_segment(); const String r = request->get_current_path_segment();
PagedArticleEntry *s = pages[r]; Ref<PagedArticleEntry> s = pages[r];
if (s == nullptr) { if (!s.is_valid()) {
request->send_error(404); request->send_error(404);
return; return;
} }
@ -94,9 +94,9 @@ void PagedArticle::load() {
String ff = folder + "/" + fn; String ff = folder + "/" + fn;
String wp = base_path + "/" + fn; String wp = base_path + "/" + fn;
PagedArticleEntry *a = load_folder(np, wp); Ref<PagedArticleEntry> a = load_folder(np, wp);
if (a) { if (a.is_valid()) {
String p = file.name; String p = file.name;
@ -116,7 +116,7 @@ void PagedArticle::load() {
generate_summaries(); generate_summaries();
} }
PagedArticleEntry *PagedArticle::load_folder(const String &folder, const String &path) { Ref<PagedArticleEntry> PagedArticle::load_folder(const String &folder, const String &path) {
printf("PagedArticle: loading: %s\n", folder.c_str()); printf("PagedArticle: loading: %s\n", folder.c_str());
Vector<String> files; Vector<String> files;
@ -124,7 +124,7 @@ PagedArticleEntry *PagedArticle::load_folder(const String &folder, const String
tinydir_dir dir; tinydir_dir dir;
if (tinydir_open(&dir, folder.c_str()) == -1) { if (tinydir_open(&dir, folder.c_str()) == -1) {
printf("PagedArticle::load_folder: Error opening folder %s!\n", folder.c_str()); printf("PagedArticle::load_folder: Error opening folder %s!\n", folder.c_str());
return nullptr; return Ref<PagedArticleEntry>();
} }
while (dir.has_next) { while (dir.has_next) {
@ -146,13 +146,14 @@ PagedArticleEntry *PagedArticle::load_folder(const String &folder, const String
tinydir_close(&dir); tinydir_close(&dir);
if (files.size() == 0) { if (files.size() == 0) {
return nullptr; return Ref<PagedArticleEntry>();
} }
//todo //todo
//std::sort(files.begin(), files.end()); //std::sort(files.begin(), files.end());
PagedArticleEntry *article = new PagedArticleEntry(); Ref<PagedArticleEntry> article;
article.instance();
for (uint32_t i = 0; i < files.size(); ++i) { for (uint32_t i = 0; i < files.size(); ++i) {
String file_path = folder; String file_path = folder;
@ -202,12 +203,12 @@ PagedArticleEntry *PagedArticle::load_folder(const String &folder, const String
} }
void PagedArticle::generate_summaries() { void PagedArticle::generate_summaries() {
for (std::map<String, PagedArticleEntry *>::iterator it = pages.begin(); it != pages.end(); ++it) { for (std::map<String, Ref<PagedArticleEntry> >::iterator it = pages.begin(); it != pages.end(); ++it) {
generate_summary((*it).second); generate_summary((*it).second);
} }
} }
void PagedArticle::generate_summary(PagedArticleEntry *article) { void PagedArticle::generate_summary(Ref<PagedArticleEntry> article) {
if (article->summary_page != "") { if (article->summary_page != "") {
return; return;
} }

View File

@ -18,14 +18,14 @@ public:
void handle_request_main(Request *request); void handle_request_main(Request *request);
void load(); void load();
PagedArticleEntry *load_folder(const String &folder, const String &path); Ref<PagedArticleEntry> load_folder(const String &folder, const String &path);
void generate_summaries(); void generate_summaries();
void generate_summary(PagedArticleEntry *article); void generate_summary(Ref<PagedArticleEntry> article);
PagedArticle(); PagedArticle();
~PagedArticle(); ~PagedArticle();
std::map<String, PagedArticleEntry *> pages; std::map<String, Ref<PagedArticleEntry>> pages;
String folder; String folder;
String base_path; String base_path;
}; };