fix: resolve stack overflow in meta plugin initialization by removing recursive calls

Co-authored-by: aider (openai/andrew/openrouter/anthropic/claude-sonnet-4) <aider@aider.chat>
This commit is contained in:
Andrew Phillips
2025-08-23 12:40:37 -03:00
parent 670d078eae
commit 449e47f721
4 changed files with 8 additions and 6 deletions

View File

@@ -21,7 +21,8 @@ impl BinaryMetaPlugin {
outputs: Option<std::collections::HashMap<String, serde_yaml::Value>>, outputs: Option<std::collections::HashMap<String, serde_yaml::Value>>,
) -> BinaryMetaPlugin { ) -> BinaryMetaPlugin {
// Start with default options // Start with default options
let mut final_options = Self::default().default_options(); let mut final_options = std::collections::HashMap::new();
final_options.insert("max_buffer_size".to_string(), serde_yaml::Value::Number(4096.into()));
if let Some(opts) = options { if let Some(opts) = options {
for (key, value) in opts { for (key, value) in opts {
final_options.insert(key, value); final_options.insert(key, value);
@@ -30,7 +31,7 @@ impl BinaryMetaPlugin {
// Start with default outputs // Start with default outputs
let mut final_outputs = std::collections::HashMap::new(); let mut final_outputs = std::collections::HashMap::new();
let default_outputs = Self::default().default_outputs(); let default_outputs = vec!["binary".to_string()];
for output_name in default_outputs { for output_name in default_outputs {
final_outputs.insert(output_name.clone(), serde_yaml::Value::String(output_name)); final_outputs.insert(output_name.clone(), serde_yaml::Value::String(output_name));
} }

View File

@@ -29,7 +29,7 @@ impl DigestSha256MetaPlugin {
// Start with default outputs // Start with default outputs
let mut final_outputs = std::collections::HashMap::new(); let mut final_outputs = std::collections::HashMap::new();
let default_outputs = Self::default().default_outputs(); let default_outputs = vec!["digest_sha256".to_string()];
for output_name in default_outputs { for output_name in default_outputs {
final_outputs.insert(output_name.clone(), serde_yaml::Value::String(output_name)); final_outputs.insert(output_name.clone(), serde_yaml::Value::String(output_name));
} }

View File

@@ -22,7 +22,8 @@ impl MagicFileMetaPlugin {
outputs: Option<std::collections::HashMap<String, serde_yaml::Value>>, outputs: Option<std::collections::HashMap<String, serde_yaml::Value>>,
) -> MagicFileMetaPlugin { ) -> MagicFileMetaPlugin {
// Start with default options // Start with default options
let mut final_options = Self::new_simple().default_options(); let mut final_options = std::collections::HashMap::new();
final_options.insert("max_buffer_size".to_string(), serde_yaml::Value::Number(4096.into()));
if let Some(opts) = options { if let Some(opts) = options {
for (key, value) in opts { for (key, value) in opts {
final_options.insert(key, value); final_options.insert(key, value);
@@ -31,7 +32,7 @@ impl MagicFileMetaPlugin {
// Start with default outputs // Start with default outputs
let mut final_outputs = std::collections::HashMap::new(); let mut final_outputs = std::collections::HashMap::new();
let default_outputs = Self::new_simple().default_outputs(); let default_outputs = vec!["mime_type".to_string(), "mime_encoding".to_string(), "file_type".to_string()];
for output_name in default_outputs { for output_name in default_outputs {
final_outputs.insert(output_name.clone(), serde_yaml::Value::String(output_name)); final_outputs.insert(output_name.clone(), serde_yaml::Value::String(output_name));
} }

View File

@@ -32,7 +32,7 @@ impl CwdMetaPlugin {
// Start with default outputs // Start with default outputs
let mut final_outputs = std::collections::HashMap::new(); let mut final_outputs = std::collections::HashMap::new();
let default_outputs = Self::default().default_outputs(); let default_outputs = vec!["cwd".to_string()];
for output_name in default_outputs { for output_name in default_outputs {
final_outputs.insert(output_name.clone(), serde_yaml::Value::String(output_name)); final_outputs.insert(output_name.clone(), serde_yaml::Value::String(output_name));
} }