@@ -73,6 +73,227 @@ fn.CGColorSpaceCopyBaseColorSpace.renamed = "copy_base_color_space"
7373fn.__CGBitmapContextCreateWithData.skipped = true
7474fn.__CGBitmapContextCreate.skipped = true
7575
76+ # #
77+ # # Fix bounds information.
78+ # #
79+
80+ fn.CGColorCreate.arguments.1.bounds.counted-by = " space.number_of_components() + 1"
81+ fn.CGColorCreateWithPattern.arguments.2.bounds.counted-by = " space.number_of_components() + 1"
82+ fn.CGColorGetComponents.return.bounds.counted-by = " self.number_of_components()" # Or "self.color_space().number_of_components() + 1"
83+
84+ fn.CGColorSpaceCreateCalibratedGray.arguments.0.written = false
85+ fn.CGColorSpaceCreateCalibratedGray.arguments.1.written = false
86+ fn.CGColorSpaceCreateCalibratedRGB.arguments.0.written = false
87+ fn.CGColorSpaceCreateCalibratedRGB.arguments.1.written = false
88+ fn.CGColorSpaceCreateCalibratedRGB.arguments.2.written = false
89+ fn.CGColorSpaceCreateCalibratedRGB.arguments.3.written = false
90+ fn.CGColorSpaceCreateLab.arguments.0.written = false
91+ fn.CGColorSpaceCreateLab.arguments.1.written = false
92+ fn.CGColorSpaceCreateLab.arguments.2.written = false
93+ fn.CGColorSpaceGetColorTable.arguments.1.written = false
94+
95+ fn.CGContextSetLineDash.arguments.2.bounds.counted-by = " count"
96+ fn.CGContextAddRects.arguments.1.bounds.counted-by = " count"
97+ fn.CGContextAddLines.arguments.1.bounds.counted-by = " count"
98+ fn.CGContextFillRects.arguments.1.bounds.counted-by = " count"
99+ fn.CGContextStrokeLineSegments.arguments.1.bounds.counted-by = " count"
100+ fn.CGContextClipToRects.arguments.1.bounds.counted-by = " count"
101+ fn.CGContextSetFillColor.arguments.1.bounds = " unsafe" # Num. components in color space
102+ fn.CGContextSetStrokeColor.arguments.1.bounds = " unsafe" # Num. components in color space
103+ fn.CGContextSetFillPattern.arguments.2.bounds = " unsafe" # Num. components in (pattern?) color space
104+ fn.CGContextSetStrokePattern.arguments.2.bounds = " unsafe" # Num. components in (pattern?) color space
105+ fn.CGContextShowGlyphsAtPositions.arguments.1.bounds.counted-by = " count"
106+ fn.CGContextShowGlyphsAtPositions.arguments.2.bounds.counted-by = " count"
107+ fn.CGContextBeginPage.arguments.1.bounds = " single"
108+ fn.CGContextSelectFont.arguments.1.bounds = " null-terminated"
109+ fn.CGContextShowText.arguments.1.bounds = " null-terminated"
110+ fn.CGContextShowTextAtPoint.arguments.3.bounds = " null-terminated"
111+ fn.CGContextShowGlyphs.arguments.1.bounds.counted-by = " count"
112+ fn.CGContextShowGlyphsAtPoint.arguments.3.bounds.counted-by = " count"
113+ fn.CGContextShowGlyphsWithAdvances.arguments.1.bounds.counted-by = " count"
114+ fn.CGContextShowGlyphsWithAdvances.arguments.2.bounds.counted-by = " count"
115+
116+ fn.CGDataConsumerCreate.arguments.1.bounds = " single"
117+
118+ fn.CGDataProviderCreateSequential.arguments.1.bounds = " single"
119+ fn.CGDataProviderCreateDirect.arguments.2.bounds = " single"
120+ fn.CGDataProviderCreateWithFilename.arguments.0.bounds = " null-terminated"
121+
122+ fn.CGGetDisplaysWithPoint.arguments.2.bounds.counted-by = " max_displays"
123+ fn.CGGetDisplaysWithPoint.arguments.3.bounds = " single"
124+ fn.CGGetDisplaysWithRect.arguments.2.bounds.counted-by = " max_displays"
125+ fn.CGGetDisplaysWithRect.arguments.3.bounds = " single"
126+ fn.CGGetDisplaysWithOpenGLDisplayMask.arguments.2.bounds.counted-by = " max_displays"
127+ fn.CGGetDisplaysWithOpenGLDisplayMask.arguments.3.bounds = " single"
128+ fn.CGGetActiveDisplayList.arguments.1.bounds.counted-by = " max_displays"
129+ fn.CGGetActiveDisplayList.arguments.2.bounds = " single"
130+ fn.CGGetOnlineDisplayList.arguments.1.bounds.counted-by = " max_displays"
131+ fn.CGGetOnlineDisplayList.arguments.2.bounds = " single"
132+ fn.CGGetDisplayTransferByFormula.arguments.1.bounds = " single"
133+ fn.CGGetDisplayTransferByFormula.arguments.2.bounds = " single"
134+ fn.CGGetDisplayTransferByFormula.arguments.3.bounds = " single"
135+ fn.CGGetDisplayTransferByFormula.arguments.4.bounds = " single"
136+ fn.CGGetDisplayTransferByFormula.arguments.5.bounds = " single"
137+ fn.CGGetDisplayTransferByFormula.arguments.6.bounds = " single"
138+ fn.CGGetDisplayTransferByFormula.arguments.7.bounds = " single"
139+ fn.CGGetDisplayTransferByFormula.arguments.8.bounds = " single"
140+ fn.CGGetDisplayTransferByFormula.arguments.9.bounds = " single"
141+ fn.CGSetDisplayTransferByTable.arguments.2.bounds.counted-by = " table_size"
142+ fn.CGSetDisplayTransferByTable.arguments.3.bounds.counted-by = " table_size"
143+ fn.CGSetDisplayTransferByTable.arguments.4.bounds.counted-by = " table_size"
144+ fn.CGGetDisplayTransferByTable.arguments.2.bounds.counted-by = " capacity"
145+ fn.CGGetDisplayTransferByTable.arguments.3.bounds.counted-by = " capacity"
146+ fn.CGGetDisplayTransferByTable.arguments.4.bounds.counted-by = " capacity"
147+ fn.CGGetDisplayTransferByTable.arguments.5.bounds = " single"
148+ fn.CGSetDisplayTransferByByteTable.arguments.2.bounds.counted-by = " table_size"
149+ fn.CGSetDisplayTransferByByteTable.arguments.3.bounds.counted-by = " table_size"
150+ fn.CGSetDisplayTransferByByteTable.arguments.4.bounds.counted-by = " table_size"
151+ fn.CGGetLastMouseDelta.arguments.0.bounds = " single"
152+ fn.CGGetLastMouseDelta.arguments.1.bounds = " single"
153+ fn.CGDisplayBestModeForParameters.arguments.4.bounds = " single"
154+ fn.CGDisplayBestModeForParametersAndRefreshRate.arguments.5.bounds = " single"
155+
156+ fn.CGBeginDisplayConfiguration.arguments.0.bounds = " single"
157+
158+ fn.CGAcquireDisplayFadeReservation.arguments.1.bounds = " single"
159+
160+ fn.CGDisplayStreamUpdateGetRects.arguments.2.bounds = " single"
161+ fn.CGDisplayStreamUpdateGetRects.return.bounds.counted-by = " rect_count"
162+ fn.CGDisplayStreamUpdateGetMovedRectsDelta.arguments.1.bounds = " single"
163+ fn.CGDisplayStreamUpdateGetMovedRectsDelta.arguments.2.bounds = " single"
164+
165+ fn.CGEventKeyboardGetUnicodeString.arguments.2.bounds = " single"
166+ fn.CGEventKeyboardGetUnicodeString.arguments.3.bounds.counted-by = " max_string_length"
167+ fn.CGEventKeyboardSetUnicodeString.arguments.2.bounds.counted-by = " string_length"
168+ fn.CGGetEventTapList.arguments.1.bounds.counted-by = " max_number_of_taps"
169+ fn.CGGetEventTapList.arguments.2.bounds = " single"
170+
171+ fn.CGFontGetGlyphAdvances.arguments.1.bounds.counted-by = " count"
172+ fn.CGFontGetGlyphAdvances.arguments.3.bounds = " single"
173+ fn.CGFontGetGlyphBBoxes.arguments.1.bounds.counted-by = " count"
174+ fn.CGFontGetGlyphBBoxes.arguments.3.bounds = " single"
175+ fn.CGFontCreatePostScriptSubset.arguments.3.bounds.counted-by = " count"
176+ fn.CGFontCreatePostScriptSubset.arguments.5.written = false
177+ fn.CGFontCreatePostScriptEncoding.arguments.1.written = false
178+
179+ fn.CGFunctionCreate.arguments.2.bounds.counted-by = " domain_dimension * 2"
180+ fn.CGFunctionCreate.arguments.4.bounds.counted-by = " range_dimension * 2"
181+ fn.CGFunctionCreate.arguments.5.bounds = " single"
182+
183+ fn.CGRectDivide.arguments.1.bounds = " single"
184+ fn.CGRectDivide.arguments.2.bounds = " single"
185+ fn.CGPointMakeWithDictionaryRepresentation.arguments.1.bounds = " single"
186+ fn.CGSizeMakeWithDictionaryRepresentation.arguments.1.bounds = " single"
187+ fn.CGRectMakeWithDictionaryRepresentation.arguments.1.bounds = " single"
188+
189+ fn.CGGradientCreateWithColorComponents.arguments.1.bounds.counted-by = " space.number_of_components() * count"
190+ fn.CGGradientCreateWithColorComponents.arguments.2.bounds.counted-by = " count"
191+ fn.CGGradientCreateWithContentHeadroom.arguments.2.bounds.counted-by = " space.number_of_components() * count"
192+ fn.CGGradientCreateWithContentHeadroom.arguments.3.bounds.counted-by = " count"
193+ fn.CGGradientCreateWithColors.arguments.2.bounds.counted-by = " colors.count()"
194+
195+ # The `decode` array depends on a lot of things, so mark it `unsafe` for now.
196+ fn.CGImageCreate.arguments.8.bounds = " unsafe"
197+ fn.CGImageMaskCreate.arguments.6.bounds = " unsafe"
198+ fn.CGImageCreateWithJPEGDataProvider.arguments.1.bounds = " unsafe"
199+ fn.CGImageCreateWithPNGDataProvider.arguments.1.bounds = " unsafe"
200+ fn.CGImageCreateWithMaskingColors.arguments.1.bounds.counted-by = " self.color_space().number_of_components() * 2"
201+ fn.CGImageCreateWithContentHeadroom.arguments.9.bounds = " unsafe"
202+ fn.CGImageGetDecode.return.bounds = " unsafe"
203+
204+ fn.CGPathCreateCopyByTransformingPath.arguments.1.bounds = " single"
205+ fn.CGPathCreateMutableCopyByTransformingPath.arguments.1.bounds = " single"
206+ fn.CGPathCreateWithRect.arguments.1.bounds = " single"
207+ fn.CGPathCreateWithEllipseInRect.arguments.1.bounds = " single"
208+ fn.CGPathCreateWithRoundedRect.arguments.3.bounds = " single"
209+ fn.CGPathAddRoundedRect.arguments.1.bounds = " single"
210+ fn.CGPathCreateCopyByDashingPath.arguments.1.bounds = " single"
211+ fn.CGPathCreateCopyByDashingPath.arguments.3.bounds.counted-by = " count"
212+ fn.CGPathCreateCopyByStrokingPath.arguments.1.bounds = " single"
213+ fn.CGPathMoveToPoint.arguments.1.bounds = " single"
214+ fn.CGPathAddLineToPoint.arguments.1.bounds = " single"
215+ fn.CGPathAddQuadCurveToPoint.arguments.1.bounds = " single"
216+ fn.CGPathAddCurveToPoint.arguments.1.bounds = " single"
217+ fn.CGPathAddRect.arguments.1.bounds = " single"
218+ fn.CGPathAddRects.arguments.1.bounds = " single"
219+ fn.CGPathAddRects.arguments.2.bounds.counted-by = " count"
220+ fn.CGPathAddLines.arguments.1.bounds = " single"
221+ fn.CGPathAddLines.arguments.2.bounds.counted-by = " count"
222+ fn.CGPathAddEllipseInRect.arguments.1.bounds = " single"
223+ fn.CGPathAddRelativeArc.arguments.1.bounds = " single"
224+ fn.CGPathAddArc.arguments.1.bounds = " single"
225+ fn.CGPathAddArcToPoint.arguments.1.bounds = " single"
226+ fn.CGPathAddPath.arguments.1.bounds = " single"
227+ fn.CGPathIsRect.arguments.1.bounds = " single"
228+ fn.CGPathContainsPoint.arguments.1.bounds = " single"
229+
230+ fn.CGPatternCreate.arguments.7.bounds = " single"
231+
232+ fn.CGPDFArrayGetObject.arguments.2.bounds = " single"
233+ fn.CGPDFArrayGetBoolean.arguments.2.bounds = " single"
234+ fn.CGPDFArrayGetInteger.arguments.2.bounds = " single"
235+ fn.CGPDFArrayGetNumber.arguments.2.bounds = " single"
236+ fn.CGPDFArrayGetName.arguments.2.bounds = " single"
237+ fn.CGPDFArrayGetString.arguments.2.bounds = " single"
238+ fn.CGPDFArrayGetArray.arguments.2.bounds = " single"
239+ fn.CGPDFArrayGetDictionary.arguments.2.bounds = " single"
240+ fn.CGPDFArrayGetStream.arguments.2.bounds = " single"
241+
242+ fn.CGPDFContentStreamGetResource.arguments.1.bounds = " null-terminated"
243+ fn.CGPDFContentStreamGetResource.arguments.2.bounds = " null-terminated"
244+
245+ fn.CGPDFContextCreate.arguments.1.bounds = " single"
246+ fn.CGPDFContextCreateWithURL.arguments.1.bounds = " single"
247+ # fn.CGPDFTagTypeGetName.return.bounds = "null-terminated" # TODO: static lifetime
248+
249+ fn.CGPDFDictionaryGetObject.arguments.1.bounds = " null-terminated"
250+ fn.CGPDFDictionaryGetObject.arguments.2.bounds = " single"
251+ fn.CGPDFDictionaryGetBoolean.arguments.1.bounds = " null-terminated"
252+ fn.CGPDFDictionaryGetBoolean.arguments.2.bounds = " single"
253+ fn.CGPDFDictionaryGetInteger.arguments.1.bounds = " null-terminated"
254+ fn.CGPDFDictionaryGetInteger.arguments.2.bounds = " single"
255+ fn.CGPDFDictionaryGetNumber.arguments.1.bounds = " null-terminated"
256+ fn.CGPDFDictionaryGetNumber.arguments.2.bounds = " single"
257+ fn.CGPDFDictionaryGetName.arguments.1.bounds = " null-terminated"
258+ fn.CGPDFDictionaryGetName.arguments.2.bounds = " single"
259+ fn.CGPDFDictionaryGetString.arguments.1.bounds = " null-terminated"
260+ fn.CGPDFDictionaryGetString.arguments.2.bounds = " single"
261+ fn.CGPDFDictionaryGetArray.arguments.1.bounds = " null-terminated"
262+ fn.CGPDFDictionaryGetArray.arguments.2.bounds = " single"
263+ fn.CGPDFDictionaryGetDictionary.arguments.1.bounds = " null-terminated"
264+ fn.CGPDFDictionaryGetDictionary.arguments.2.bounds = " single"
265+ fn.CGPDFDictionaryGetStream.arguments.1.bounds = " null-terminated"
266+ fn.CGPDFDictionaryGetStream.arguments.2.bounds = " single"
267+
268+ fn.CGPDFDocumentGetVersion.arguments.1.bounds = " single"
269+ fn.CGPDFDocumentGetVersion.arguments.2.bounds = " single"
270+ fn.CGPDFDocumentUnlockWithPassword.arguments.1.bounds = " null-terminated"
271+
272+ fn.CGPDFOperatorTableSetCallback.arguments.1.bounds = " null-terminated"
273+
274+ fn.CGPDFScannerPopObject.arguments.1.bounds = " single"
275+ fn.CGPDFScannerPopBoolean.arguments.1.bounds = " single"
276+ fn.CGPDFScannerPopInteger.arguments.1.bounds = " single"
277+ fn.CGPDFScannerPopNumber.arguments.1.bounds = " single"
278+ fn.CGPDFScannerPopName.arguments.1.bounds = " single"
279+ fn.CGPDFScannerPopString.arguments.1.bounds = " single"
280+ fn.CGPDFScannerPopArray.arguments.1.bounds = " single"
281+ fn.CGPDFScannerPopDictionary.arguments.1.bounds = " single"
282+ fn.CGPDFScannerPopStream.arguments.1.bounds = " single"
283+
284+ fn.CGPDFStreamCopyData.arguments.1.bounds = " single"
285+ fn.CGPDFStringGetBytePtr.return.bounds.counted-by = " string.length()"
286+
287+ fn.CGPSConverterCreate.arguments.1.bounds = " single"
288+
289+ fn.CGWaitForScreenRefreshRects.arguments.0.bounds = " single" # Though inner is counted by `count`
290+ fn.CGWaitForScreenRefreshRects.arguments.1.bounds = " single"
291+ fn.CGWaitForScreenUpdateRects.arguments.1.bounds = " single"
292+ fn.CGWaitForScreenUpdateRects.arguments.2.bounds = " single" # Though inner is counted by `rect_count`
293+ fn.CGWaitForScreenUpdateRects.arguments.3.bounds = " single"
294+ fn.CGWaitForScreenUpdateRects.arguments.4.bounds = " single"
295+ fn.CGReleaseScreenRefreshRects.arguments.0.bounds = " unsafe"
296+
76297# #
77298# # Fixing generics.
78299# #
0 commit comments