PostgreSQL Source Code git master
All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
fe_memutils.c File Reference
#include "postgres_fe.h"
Include dependency graph for fe_memutils.c:

Go to the source code of this file.

Functions

static void * pg_malloc_internal (size_t size, int flags)
 
void * pg_malloc (size_t size)
 
void * pg_malloc0 (size_t size)
 
void * pg_malloc_extended (size_t size, int flags)
 
void * pg_realloc (void *ptr, size_t size)
 
char * pg_strdup (const char *in)
 
void pg_free (void *ptr)
 
void * palloc (Size size)
 
void * palloc0 (Size size)
 
void * palloc_extended (Size size, int flags)
 
void pfree (void *pointer)
 
char * pstrdup (const char *in)
 
char * pnstrdup (const char *in, Size size)
 
void * repalloc (void *pointer, Size size)
 

Function Documentation

◆ palloc()

void * palloc ( Size  size)

Definition at line 115 of file fe_memutils.c.

116{
117 return pg_malloc_internal(size, 0);
118}
static void * pg_malloc_internal(size_t size, int flags)
Definition: fe_memutils.c:23

References pg_malloc_internal().

◆ palloc0()

void * palloc0 ( Size  size)

Definition at line 121 of file fe_memutils.c.

122{
124}
#define MCXT_ALLOC_ZERO
Definition: fe_memutils.h:30

References MCXT_ALLOC_ZERO, and pg_malloc_internal().

◆ palloc_extended()

void * palloc_extended ( Size  size,
int  flags 
)

Definition at line 127 of file fe_memutils.c.

128{
129 return pg_malloc_internal(size, flags);
130}

References pg_malloc_internal().

◆ pfree()

void pfree ( void *  pointer)

Definition at line 133 of file fe_memutils.c.

134{
135 pg_free(pointer);
136}
void pg_free(void *ptr)
Definition: fe_memutils.c:105

References pg_free().

◆ pg_free()

void pg_free ( void *  ptr)

Definition at line 105 of file fe_memutils.c.

106{
107 free(ptr);
108}
#define free(a)
Definition: header.h:65

References free.

Referenced by _printTocEntry(), advanceConnectionState(), append_depends_on_extension(), appendQualifiedRelation(), avlFree(), bool_substitute_hook(), calculate_totals(), check_exec(), check_for_data_types_usage(), check_for_incompatible_polymorphics(), check_publisher(), checksum_file(), close_walfile(), copy_file_blocks(), copyFile(), create_script_for_old_cluster_deletion(), datapagemap_print(), dir_close(), dir_free(), dir_open_for_write(), do_connect(), do_watch(), dumpFunc(), dumpRoleMembership(), dumpSequence(), EndCompressor(), FindStreamingStart(), free_command(), free_db_and_rel_infos(), free_rel_infos(), free_socket_set(), get_control_data(), get_db_rel_and_slot_infos(), get_loadable_libraries(), get_publisher_databases(), get_restricted_token(), get_standby_sysid(), getTimelineHistory(), icu_language_tag(), init_libpq_conn(), IssueACLPerBlob(), IssueCommandPerBlob(), libpq_get_current_wal_insert_lsn(), listSchemas(), main(), make_rfile(), makeAlterConfigCommand(), modify_subscriber_sysid(), open_walfile(), parallel_exec_prog(), parallel_transfer_all_new_dbs(), parseAclItem(), parseCommandLine(), parseQuery(), perform_rewind(), pfree(), printCrosstab(), PrintResultInCrosstab(), process_queued_fetch_requests(), rankSort(), readCommandResponse(), ReadHead(), readMessageFromPipe(), ReceiveXlogStream(), reconstruct_from_incremental_file(), reindex_one_database(), RestoreArchive(), retrieve_objects(), run_schedule(), SendQuery(), set_replication_progress(), setlocales(), setup_publisher(), SetVariable(), simple_oid_list_destroy(), simple_oid_string_list_destroy(), simple_ptr_list_destroy(), simple_string_list_destroy(), SortTocFromFile(), tar_close(), tar_free(), tar_open_for_write(), transfer_all_new_dbs(), upgrade_task_free(), upgrade_task_run(), vacuum_one_database(), verify_tar_file(), WriteDataChunks(), and WriteToc().

◆ pg_malloc()

void * pg_malloc ( size_t  size)

Definition at line 47 of file fe_memutils.c.

48{
49 return pg_malloc_internal(size, 0);
50}

References pg_malloc_internal().

Referenced by _Clone(), _CustomReadFunc(), _PrintFileData(), _skipData(), add_one_elt(), add_stringlist_item(), ahprintf(), allocCStatePrepared(), ArchiveEntry(), archprintf(), astreamer_verify_content_new(), avlInsertNode(), buildACLCommands(), BuildArchiveDependencies(), check_testspec(), checksum_file(), CloneArchive(), collectBinaryUpgradeClassOids(), collectComments(), collectRoleNames(), collectSecLabels(), collectSequences(), conditional_stack_create(), conditional_stack_push(), copy_connection(), copy_file_blocks(), copyFile(), create_manifest_writer(), create_sql_command(), createBoundaryObjects(), CreateVariableSpace(), CreateWalTarMethod(), datapagemap_iterate(), decide_file_actions(), do_connect(), do_watch(), dumpFunc(), dumpTableData_insert(), escape_quotes_bki(), ExecuteSqlCommandBuf(), expr_scanner_get_substring(), find_other_exec_or_die(), findDependencyLoops(), fix_dependencies(), format_numeric_locale(), gen_db_file_maps(), get_comma_elts(), get_exec_path(), get_loadable_libraries(), get_tablespace_paths(), get_template0_info(), getAccessMethods(), getAggregates(), getCasts(), getCollations(), getConstraints(), getConversions(), getDefaultACLs(), getDomainConstraints(), getEventTriggers(), getExtendedStatistics(), getExtensions(), getForeignDataWrappers(), getForeignServers(), getFuncs(), getIndexes(), getInherits(), getLOs(), getNamespaces(), getOpclasses(), getOperators(), getOpfamilies(), getPolicies(), getProcLangs(), getPublicationNamespaces(), getPublications(), getPublicationTables(), getRelationStatistics(), getRules(), getSubscriptions(), getSubscriptionTables(), getTableAttrs(), getTimelineHistory(), getTransforms(), getTriggers(), getTSConfigurations(), getTSDictionaries(), getTSParsers(), getTSTemplates(), getTypes(), icu_language_tag(), identify_locking_dependencies(), libpq_fetch_file(), listSchemas(), load_backup_manifest(), load_backup_manifests(), load_resultmap(), main(), makeTableDataInfo(), NewDumpOptions(), parallel_exec_prog(), parallel_transfer_all_new_dbs(), ParallelBackupStart(), parse_manifest_file(), ParseScript(), parseScriptWeight(), parseVariable(), precheck_tar_backup_file(), pretty_wal_size(), print_aligned_text(), print_aligned_vertical(), printCrosstab(), PrintResultInCrosstab(), process_directory_recursively(), process_old_cluster_logical_slot_infos(), process_queued_fetch_requests(), process_rel_infos(), pset_quoted_string(), psqlscan_extract_substring(), psqlscan_prepare_buffer(), psqlscan_push_new_buffer(), quote_identifier(), quote_if_needed(), rankSort(), read_controlfile(), read_file_contents(), ReadDataFromArchiveNone(), readfile(), readMessageFromPipe(), ReadStr(), ReadToc(), reconstruct_from_incremental_file(), remember_to_cleanup_directory(), replace_token(), rewind_parseTimeLineHistory(), run_all_permutations(), run_permutation(), savePsetInfo(), setup_bin_paths(), SetVariable(), SetVariableHooks(), simple_oid_list_append(), simple_oid_string_list_append(), simple_ptr_list_append(), simple_string_list_append(), slurpFile(), sortDumpableObjects(), SplitGUCList(), sql_exec(), sql_exec_searchtables(), StartRestoreLO(), strtokx(), tar_open_for_write(), tarPrintf(), TopoSort(), verify_backup_checksums(), verify_tar_file(), wait_for_tests(), WaitForTerminatingWorkers(), and WriteDataChunks().

◆ pg_malloc0()

void * pg_malloc0 ( size_t  size)

Definition at line 53 of file fe_memutils.c.

54{
56}

References MCXT_ALLOC_ZERO, and pg_malloc_internal().

Referenced by _allocAH(), _ArchiveEntry(), _discoverArchiveFormat(), _ReadExtraToc(), add_tablespace_mapping(), alloc_socket_set(), AllocateCompressor(), allocCStatePrepared(), ArchiveEntry(), avlInit(), buildTocEntryArrays(), check_for_data_types_usage(), compile_database_list(), compile_relation_list_one_db(), ConnectDatabase(), CreateWalDirectoryMethod(), CreateWalTarMethod(), describeRoles(), dir_get_file_name(), dir_open_for_write(), dumpRoleMembership(), dumpSequence(), findDependencyLoops(), FindStreamingStart(), get_db_infos(), get_parallel_tabidx_list(), get_parallel_tables_list(), GetConnection(), getFuncs(), getRelationStatistics(), getTables(), init_libpq_source(), init_local_source(), InitArchiveFmt_Custom(), InitArchiveFmt_Directory(), InitCompressFileHandle(), load_backup_manifest(), main(), make_incremental_rfile(), make_outputdirs(), make_rfile(), NewRestoreOptions(), parallel_exec_prog(), parallel_transfer_all_new_dbs(), ParallelBackupStart(), parse_manifest_file(), parse_slash_copy(), print_aligned_text(), printTableAddCell(), printTableAddFooter(), printTableInit(), process_backslash_command(), psql_scan_create(), ReadToc(), reconstruct_from_incremental_file(), reindex_one_database(), run_all_permutations(), scan_for_existing_tablespaces(), setup_connection(), SortTocFromFile(), StartLogStreamer(), tablespace_list_append(), tar_get_file_name(), tar_open_for_write(), test_protocol_version(), TopoSort(), upgrade_task_create(), and upgrade_task_run().

◆ pg_malloc_extended()

void * pg_malloc_extended ( size_t  size,
int  flags 
)

Definition at line 59 of file fe_memutils.c.

60{
61 return pg_malloc_internal(size, flags);
62}

References pg_malloc_internal().

Referenced by do_lo_import(), and pg_log_generic_v().

◆ pg_malloc_internal()

static void * pg_malloc_internal ( size_t  size,
int  flags 
)
inlinestatic

Definition at line 23 of file fe_memutils.c.

24{
25 void *tmp;
26
27 /* Avoid unportable behavior of malloc(0) */
28 if (size == 0)
29 size = 1;
30 tmp = malloc(size);
31 if (tmp == NULL)
32 {
33 if ((flags & MCXT_ALLOC_NO_OOM) == 0)
34 {
35 fprintf(stderr, _("out of memory\n"));
36 exit(EXIT_FAILURE);
37 }
38 return NULL;
39 }
40
41 if ((flags & MCXT_ALLOC_ZERO) != 0)
42 MemSet(tmp, 0, size);
43 return tmp;
44}
#define MemSet(start, val, len)
Definition: c.h:991
#define fprintf(file, fmt, msg)
Definition: cubescan.l:21
#define _(x)
Definition: elog.c:91
#define MCXT_ALLOC_NO_OOM
Definition: fe_memutils.h:29
#define malloc(a)
Definition: header.h:50
#define EXIT_FAILURE
Definition: settings.h:197

References _, EXIT_FAILURE, fprintf, malloc, MCXT_ALLOC_NO_OOM, MCXT_ALLOC_ZERO, and MemSet.

Referenced by palloc(), palloc0(), palloc_extended(), pg_malloc(), pg_malloc0(), and pg_malloc_extended().

◆ pg_realloc()

void * pg_realloc ( void *  ptr,
size_t  size 
)

Definition at line 65 of file fe_memutils.c.

66{
67 void *tmp;
68
69 /* Avoid unportable behavior of realloc(NULL, 0) */
70 if (ptr == NULL && size == 0)
71 size = 1;
72 tmp = realloc(ptr, size);
73 if (!tmp)
74 {
75 fprintf(stderr, _("out of memory\n"));
76 exit(EXIT_FAILURE);
77 }
78 return tmp;
79}
#define realloc(a, b)
Definition: header.h:60

References _, EXIT_FAILURE, fprintf, and realloc.

Referenced by add_one_elt(), addlitchar(), BuildArchiveDependencies(), datapagemap_add(), enlargeVariables(), exec_command_set(), extend_pattern_info_array(), findDumpableDependencies(), icu_language_tag(), identify_locking_dependencies(), main(), ParseScript(), read_file_contents(), readfile(), readMessageFromPipe(), ReadToc(), repalloc(), replaceVariable(), rewind_parseTimeLineHistory(), and upgrade_task_add_step().

◆ pg_strdup()

char * pg_strdup ( const char *  in)

Definition at line 85 of file fe_memutils.c.

86{
87 char *tmp;
88
89 if (!in)
90 {
91 fprintf(stderr,
92 _("cannot duplicate null pointer (internal error)\n"));
93 exit(EXIT_FAILURE);
94 }
95 tmp = strdup(in);
96 if (!tmp)
97 {
98 fprintf(stderr, _("out of memory\n"));
99 exit(EXIT_FAILURE);
100 }
101 return tmp;
102}

References _, EXIT_FAILURE, and fprintf.

Referenced by _allocAH(), _ArchiveEntry(), _becomeUser(), _check_database_version(), _getObjectDescription(), _selectOutputSchema(), _selectTableAccessMethod(), _selectTablespace(), _tarGetHeader(), add_one_elt(), add_stringlist_item(), adjust_data_dir(), append_depends_on_extension(), ArchiveEntry(), bool_substitute_hook(), check_locale_name(), check_publisher(), check_required_directory(), check_subscriber(), CloneArchive(), collectComments(), collectRoleNames(), collectSecLabels(), comp_keyword_case_substitute_hook(), concat_conninfo_dbname(), ConnectDatabaseAhx(), constructConnStr(), convertRegProcReference(), convertTSFunction(), create_logical_replication_slot(), create_script_for_old_cluster_deletion(), createBoundaryObjects(), CreateWalDirectoryMethod(), describeOneTableDetails(), describeRoles(), dir_open_for_write(), do_pset(), dumpAccessMethod(), dumpAttrDef(), dumpBaseType(), dumpCollation(), dumpCompositeType(), dumpConversion(), dumpDatabase(), dumpDomain(), dumpEnumType(), dumpEventTrigger(), dumpExtension(), dumpForeignDataWrapper(), dumpForeignServer(), dumpIndex(), dumpNamespace(), dumpOpclass(), dumpOpfamily(), dumpOptionsFromRestoreOptions(), dumpPolicy(), dumpProcLang(), dumpPublication(), dumpRangeType(), dumpRoleGUCPrivs(), dumpRule(), dumpSearchPath(), dumpSequence(), dumpStatisticsExt(), dumpSubscription(), dumpTable(), dumpTableConstraintComment(), dumpTableData(), dumpTableSchema(), dumpTablespaces(), dumpTrigger(), dumpTSConfig(), dumpTSDictionary(), dumpTSParser(), dumpTSTemplate(), dumpUndefinedType(), echo_substitute_hook(), encodingid_to_string(), exec_command_g(), exec_command_gset(), exec_command_password(), exec_command_set(), fetch_count_substitute_hook(), find_matching_ts_config(), FindDbnameInConnOpts(), fix_path_separator(), flagInhAttrs(), flagInhIndexes(), flagInhTables(), format_numeric_locale(), get_base_conninfo(), get_comma_elts(), get_control_data(), get_db_infos(), get_id(), get_language_name(), get_loadable_libraries(), get_opts(), get_restricted_token(), get_sock_dir(), get_sub_conninfo(), get_synchronized_snapshot(), get_tablespace_paths(), get_template0_info(), get_user_info(), getAccessMethods(), getAggregates(), getCollations(), getConstraints(), getConversions(), getDefaultACLs(), getDomainConstraints(), getEventTriggers(), getExtendedStatistics(), getExtensions(), getForeignDataWrappers(), getForeignServers(), getFormattedTypeName(), getFuncs(), getIndexes(), getLOs(), getNamespaces(), getOpclasses(), getOperators(), getOpfamilies(), getPolicies(), getProcLangs(), getPublications(), getPublicationTables(), getRelationStatistics(), getRules(), gets_fromFile(), getSubscriptions(), getSubscriptionTables(), getTableAttrs(), getTables(), getTriggers(), getTSConfigurations(), getTSDictionaries(), getTSParsers(), getTSTemplates(), getTypes(), getVariable(), handle_args(), histcontrol_substitute_hook(), histsize_substitute_hook(), identify_target_directory(), ignoreeof_substitute_hook(), InitDiscoverCompressFileHandle(), initializeInput(), insert_filehash_entry(), IssueACLPerBlob(), IssueCommandPerBlob(), keepwal_add_entry(), listSchemas(), load_resultmap(), lookupCreateVariable(), main(), MainLoop(), makeAlterConfigCommand(), open_result_files(), parallel_exec_prog(), parallel_transfer_all_new_dbs(), parse_psql_options(), parse_slash_copy(), parseAclItem(), parseCommandLine(), parseQuery(), ParseScript(), parseScriptWeight(), pg_send_history(), postprocess_sql_command(), printTableAddFooter(), printTableSetFooter(), process_backslash_command(), process_old_cluster_logical_slot_infos(), process_rel_infos(), process_source_file(), process_target_file(), processEncodingEntry(), processExtensionTables(), processSearchPathEntry(), progress_update_filename(), psql_get_variable(), psqlscan_push_new_buffer(), pstrdup(), putVariable(), read_post_opts(), readfile(), ReconnectToServer(), regression_main(), RestoreArchive(), run_schedule(), run_simple_query(), RunIdentifySystem(), sanitize_line(), save_global_locale(), savePsetInfo(), search_directory(), sendCommand(), set_info_version(), setDecimalLocale(), setup(), setup_config(), setup_connection(), setup_pgdata(), setup_publisher(), SetVariable(), SetVariableHooks(), show_context_substitute_hook(), simple_action_list_append(), simple_prompt_extended(), split_path(), split_to_stringlist(), tar_open_for_write(), tarOpen(), verbosity_substitute_hook(), and watch_interval_substitute_hook().

◆ pnstrdup()

char * pnstrdup ( const char *  in,
Size  size 
)

Definition at line 145 of file fe_memutils.c.

146{
147 char *tmp;
148 int len;
149
150 if (!in)
151 {
152 fprintf(stderr,
153 _("cannot duplicate null pointer (internal error)\n"));
154 exit(EXIT_FAILURE);
155 }
156
157 len = strnlen(in, size);
158 tmp = malloc(len + 1);
159 if (tmp == NULL)
160 {
161 fprintf(stderr, _("out of memory\n"));
162 exit(EXIT_FAILURE);
163 }
164
165 memcpy(tmp, in, len);
166 tmp[len] = '\0';
167
168 return tmp;
169}
const void size_t len
size_t strnlen(const char *str, size_t maxlen)
Definition: strnlen.c:26

References _, EXIT_FAILURE, fprintf, len, malloc, and strnlen().

◆ pstrdup()

char * pstrdup ( const char *  in)

Definition at line 139 of file fe_memutils.c.

140{
141 return pg_strdup(in);
142}
char * pg_strdup(const char *in)
Definition: fe_memutils.c:85

References pg_strdup().

◆ repalloc()

void * repalloc ( void *  pointer,
Size  size 
)

Definition at line 172 of file fe_memutils.c.

173{
174 return pg_realloc(pointer, size);
175}
void * pg_realloc(void *ptr, size_t size)
Definition: fe_memutils.c:65

References pg_realloc().